function f1(){
var n=999;
nAdd=function(){n+=1;};
function f2(){
alert(n);
}
return f2;
}
var result = f1();
var result2 = f1();
result(); // 999
nAdd();
result2(); // 1000
result2(); // 1000
result(); // 999
我努力学习JavaScript关闭,但上述只是让我困惑的代码。 当第一次调用result()
时,它是999.对我来说没关系。
nAdd()
之后被调用,result2()
节目1000我认为这是由于功能result2()
和功能result()
是平等的运作f1()
。
但为什么最后的result()
显示999而不是1000?
+1。每次输入执行上下文时,都会创建一组新的变量。 – RobG