为什么每次有人问 闭包,每个人都说的不一样?有大神一句话点透。
闭包,通俗来说不就是 内部 与全局的 双向通道吗?
求大神 神点。。。
7 回复
我也不知道该怎样表述闭包
Closures are functions that refer to independent (free) variables. In other words, the function defined in the closure ‘remembers’ the environment in which it was created.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures
闭包 就是把环境打包背着,用的时候把包打开查一查。 再 node-inspector 里,看看Scope会有帮助。
涉及到闭包的地方,可以用async
的api解决,async.map()
什么的
- 一个函数(A)包含一个匿名函数(B),并把返回给外部使用
- 被返回的匿名函数(B)在被设置为null之前,这个匿名函数(B)可以访问包含它的那个函数(A)的下所有变量,定义的函数等
想理解闭包需要先理解几个内容
- 匿名函数
- 函数作用域
- 原型链
去看一下第五版的JavaScript高级程序设计,有讲闭包,我看了七遍才看懂, 还有高性能JavaScript,这个也值得多看几遍,更深入一些
函数体内部能直接访问函数体外部的东西,反过来则不行
单向的 只有向上访问 没有向下访问
函数以及定义函数时所处执行上下文的词法环境组成的实体,称为闭包。