闭包有什么用?

 2024-03-09 01:12:18  阅读 0

让我用最原始的术语向你解释一下什么是闭包? 这是为了什么?

我在网上搜了很多关于闭包的具体定义。 我想给大家总结一下我的理解。 我将给你三个简单的例子,它们都适用于闭包。 你可以先看看他们的区别。

变量a

b(){

我=0

___a = (){

(我)

___}

};

_____

有趣的(){

米 = 10;

(){

(米)

___}

};

_____

var lis = .("li");

为(变量我= 0;我

___((我){

[我]。 =(){

.log(i);

};

___})(我);

从视觉上看,闭包实际上是函数内的函数。 是的,闭包实际上是一个函数。 其次,并不是所有的函数都可以成为闭包。 网上很多帖子都说内部函数必须引用外部函数的变量。 这个说法太模糊了。

只需将外部函数中的变量引入到内部函数中即可。 如果不返回这个内部函数,那么在外部函数的同级作用域中仍然无法访问外部函数中的变量。

所以这是形成闭包的第一种方式:内部函数引用外部函数中的变量,然后返回内部函数

第二种方法是将这个内部函数保存在全局变量中。 我们可以通过这个变量名直接全局调用这个内部函数。 这时候我们就不需要内部函数了。

总而言之,只要你能暴露“引用外部函数中的变量”的内部函数,那么它就称为闭包

为什么这么复杂?闭包的初衷并不是为了解决函数内的变量在函数外不可访问的问题。

标签: 函数 变量 内部

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码