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?
