【问题标题】:Access local variable from the global context? [duplicate]从全局上下文访问局部变量? [复制]
【发布时间】: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


【解决方案1】:

您的函数在调用时设置一个私有值 (localVariable) 并立即返回它,因此您可以将其分配给另一个变量,而无需更改函数内部的私有 var。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2019-06-05
    • 2013-01-06
    • 1970-01-01
    相关资源
    最近更新 更多