Mat*_*son 5 javascript closures
引自Stoyan Stefanov的面向对象的JavaScript(第84页):

如果你在a点,你就在全球空间里.如果您位于功能F空间内的b点,则可以访问全局空间和F空间.如果你在位于函数N内的c点,那么你可以访问全局空间,F空间和N空间你无法从a到b,因为b在F外是不可见的但是你可以如果你愿意,可以从c到b,或从N到b.有趣的事情 - 关闭 - 发生在N以某种方式突破F并最终进入全球空间."
我认为上面的粗体句子应该改为"如果你在c点,它在函数N里面,那么你可以访问全局空间和N空间"(不应该包含F空间,因为点c只能访问N空间和全局范围G.).
我对吗?谢谢.
正如其他人所说,不。
\n\n关于闭包的全部要点是,对内部函数的外部引用不仅使内部函数保持活动状态,而且还允许它访问创建它的外部环境,即使该外部环境是由执行的函数产生的已完成并返回。
\n\n我认为如果蓝色N显示在内部F并且虚线版本(参考N)显示在外部,该图会更好地说明闭合F。
引用的声明的最后一句还可以改进:
\n\n\n\n\n有趣的是 \xe2\x80\x94 闭包 - 当 F 外部存在对 N 的外部引用时发生。
\n
请注意,此版本避免提及全局空间。任何外部作用域都足以形成闭包。
\n\n该声明还可以进一步说,允许形成关闭的机制是对垃圾收集的抑制。
\n\n警告:网络上和书籍中对“闭包”有许多错误的定义和描述。Stack Overflows 当前的“closures”标签 wiki 条目就是一个很好的例子。
\n| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |