在这里,我正在返回一个关闭' 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的值存储在哪里? 它是否存储在每个函数的执行上下文中,以便只有在调用该特定函数时才能更改它。
答案 0 :(得分:0)
我看到你在
中定义了变量imyFunc
这意味着变量i的范围将在该函数内。因此,无论何时调用此函数,它都会创建自己的i。