【发布时间】:2017-10-16 07:13:26
【问题描述】:
所以我明白 JavaScript 中的闭包是做什么的,但我不明白它“如何”记住的。
使用 YDKJS 书中的例子:
function foo() {
var a = 2;
function bar() {
console.log( a );
}
return bar;
}
var baz = foo();
baz()//Prints 2
我知道bar 正在返回,并且 bar 可以访问包括a 的词法范围。我们可以使用foo() 的返回值制作多个项目,这很棒!然而,幕后究竟发生了什么。
函数返回的是对原始变量的引用……还是一些隐藏的副本?究竟发生了什么?
【问题讨论】:
-
but I don't understand "how" it remembers-how重要吗?这里有一些documentation 来满足你的好奇心 -
"函数返回的是对原始变量的引用吗?" - 是的,这几乎就是字面意义上的definition of "closure"
-
@Bergi 目前安装
v8的过程与链接中描述的相同吗? -
@guest271314 我不知道,我从来没有尝试过,但你肯定可以通过网络搜索找到
标签: javascript