Javascript 闭包的好处是什么,通常在什么时候使用?

Javascript 闭包的好处是什么,通常在什么时候使用?,javascript,closures,Javascript,Closures,我是一名web开发人员,但很多人都在寻找更高级的技能,而理解闭包似乎是最重要的 我得到了整个“执行上下文创建对一个永远不会被破坏的变量的引用”的东西,但实际上,这是JavaScript中的某种私有或静态变量实现吗 它们在很多方面都很有用,例如可见性(比如传统OO中的私有成员) Mycount()可以使用数字作为种子。当我给返回赋值时,我可以用一个可选的数字来调用它,以添加到内部num(最初是一个参数,但仍然是返回函数作用域的一部分) 另请参见关于堆栈溢出的说明 有很多JS书籍可供选

我是一名web开发人员,但很多人都在寻找更高级的技能,而理解闭包似乎是最重要的


我得到了整个“执行上下文创建对一个永远不会被破坏的变量的引用”的东西,但实际上,这是JavaScript中的某种私有或静态变量实现吗

它们在很多方面都很有用,例如可见性(比如传统OO中的私有成员)

My
count()
可以使用数字作为种子。当我给返回赋值时,我可以用一个可选的数字来调用它,以添加到内部
num
(最初是一个参数,但仍然是返回函数作用域的一部分)

另请参见关于堆栈溢出的说明

有很多JS书籍可供选择,但如果你真的想了解这一点(仍然是最好的JS参考书),你真的应该买一本David Flanagan的。阅读关于闭包的一章,你将获得比任何人在这里的答复中都能给你的更深入的知识。

闭包是一个带有绑定变量的代码块,它从外部上下文“捕获”其变量,但它独立于同一上下文

javascript中的一个实际用途是在定义事件或回调时—例如,您可以在单击按钮时声明要执行的闭包,但此闭包可以引用调用方作用域中声明的变量

经常使用闭包-顺便说一句,这是了解jQuery闭包的一个很好的链接:


希望有帮助。

它们通常在什么时候使用?@codennija查看底部的链接。不久前,当我处于你的位置时,他们帮助了我。问题是,如果你能在这里详细说明的话,你需要具体的话题。如果贴出一个好例子的描述会有很大帮助。
var count = function(num) {

   return function(add) {
       add = add || 1;
       num += add;
       return num;
   }

}