为什么每次有人问 闭包,每个人都说的不一样?有大神一句话点透。
发布于 9 年前 作者 youarenode 4578 次浏览 最后一次编辑是 8 年前 来自 问答

闭包,通俗来说不就是 内部 与全局的 双向通道吗?

求大神 神点。。。

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()什么的

  1. 一个函数(A)包含一个匿名函数(B),并把返回给外部使用
  2. 被返回的匿名函数(B)在被设置为null之前,这个匿名函数(B)可以访问包含它的那个函数(A)的下所有变量,定义的函数等

想理解闭包需要先理解几个内容

  1. 匿名函数
  2. 函数作用域
  3. 原型链

去看一下第五版的JavaScript高级程序设计,有讲闭包,我看了七遍才看懂, 还有高性能JavaScript,这个也值得多看几遍,更深入一些

函数体内部能直接访问函数体外部的东西,反过来则不行

单向的 只有向上访问 没有向下访问

函数以及定义函数时所处执行上下文的词法环境组成的实体,称为闭包。

回到顶部