关闭,存储的值在哪里?

时间:2017-11-06 23:00:02

标签: javascript closures

在这里,我正在返回一个关闭' i'变量,创建一个闭包。

var myFunc = function(){
    var i = 0;
    function increment(){
        return ++i;
        console.log(i);
    }
    return increment
}

now如果我将此函数分配给其他变量,如

var newFunc = myFunc();
var newFunc2 = myFunc();

调用其中任何一个都会导致

newFunc() // 1
newFunc() // 2
newFunc() // 3
newFunc2() // 1 ??

var i的值存储在哪里? 它是否存储在每个函数的执行上下文中,以便只有在调用该特定函数时才能更改它。

1 个答案:

答案 0 :(得分:0)

我看到你在

中定义了变量i
myFunc

这意味着变量i的范围将在该函数内。因此,无论何时调用此函数,它都会创建自己的i。