【发布时间】:2018-06-01 18:46:56
【问题描述】:
function wrapValue(n) {
var localVariable = n;
return function() { return localVariable; };
}
var wrap1 = wrapValue(1);
var wrap2 = wrapValue(2);
console.log(wrap1());
// → 1
console.log(wrap2());
// → 2
在此示例中,如何允许从 global 环境访问 localVariable,这是 wrapValue() 函数的本地函数?
这本书,包括这个例子,说明原因如下:
“变量的多个实例可以同时处于活动状态”。
但是没看懂。
【问题讨论】:
-
localvariable 是一个局部变量,每次方法调用都会创建它。您正在使用闭包公开此变量。
-
它是闭包,JavaScript 可以访问父范围内的所有变量..
-
谢谢大家,我会读一读。
-
重要的是
localVariable不是函数的本地(定义),而是wrapValue()的每个调用 的本地
标签: javascript closures