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