What are the benefits of a closure, and when are they typically used?
我是一名网络开发人员,但很多人都在寻找更高级的技能,理解闭包似乎是最重要的。
我得到了整个"执行上下文创建对一个永远不会被破坏的变量的引用"的东西,但实际上,这是JavaScript中的某种私有或静态变量实现吗?
它们可以用于许多事情,例如,可见性(如传统OO中的私人成员)。
1 2 3 4 5 6 7 8 9 | var count = function(num) { return function(add) { add = add || 1; num += add; return num; } } |
看见。
我的
这是一个非常好的概述。
另请参阅Stack Overflow
- JavaScript中的闭包有什么实际用途?
- javascript闭包是如何工作的?
- 什么时候实际创建了一个闭包?
- 更多...
闭包是一个带有绑定变量的代码块 - 它从外部上下文"捕获"它的变量 - 但它独立于同一个上下文。
javascript中的实际用法是在定义事件或回调时 - 例如,您声明了在按钮的单击时执行的闭包,但是此闭包可以引用在调用者作用域上声明的变量。
jQuery使用了很多闭包 - 顺便说一句,这是理解jQuery闭包的一个很好的链接:jQuery上下文中Javascript闭包的图形解释。
希望能帮助到你。
有很多JS书籍可供选择,但你真的应该抓住David Flanagan的JavaScript:The Definitive Guide的副本,如果你真的想学习这个(仍然是最好的JS参考恕我直言)。阅读有关闭包的章节,您将获得比任何人都能在此回复中提供的更深入的知识。