JavaScript 闭包

来源:互联网 发布:javv8机顶盒直播软件 编辑:程序博客网 时间:2024/04/29 20:37

可以这么理解(闭包):所谓包,指函数与其周围的环境变量捆绑打包;所谓闭,指这些变量是封闭的,只能为该函数所专用。合理地使用闭包能使代码更加简洁清晰,散发出函数式特有的优雅气质。
另外,我们不妨认为闭包就是封装了环境变量的隐形对象的方法–通常是匿名方法。


函数对象可以通过作用域链相互关联起来,函数体内部的变量都可以保存在函数作用域内,这种特性在计算机科学文献中称为‘闭包’, 从技术角度讲,所有Javascript函数都是闭包:它们都是对象,它们都关联到作用域链。
看了几页”Python Cookbook”,上面有一句话形容闭包,觉得很形象: 闭包 是一次性完成所有准备工作的最好方法,它能够返回一个满足需求的快速过滤函数.

这里其实就是一个最简单的闭包:
这里写图片描述
这里写图片描述
上图: 注意看 Closure里面的 passed: 3

这里是一个典型的返回内部函数的闭包:
这里写图片描述
这里写图片描述


参考

上面’其他’部分原文档
Javascript中的作用域和闭包
JS闭包
JS核心

PS

ES6有块作用域了,这里需要进一步了解和学习下.
ES6入门
更多ES6相关
图解Javascript上下文与作用域
理解Javascript的闭包

1 0
原创粉丝点击