<script>
function f1() {
var n = 999;
nAdd = function () { n += 1 }
function f2() {
alert(n);
}
return f2;
}
var result = f1();
result(); // 999
nAdd();
result(); // 1000
</script>
第一次调用result() 不是应该代码从上往下调用,第一次nAdd 时 n = 999+1=1000,第二次f2 时n怎么又变会回了999
第二个nAdd()我认为是脱离了函数被回收了,所以不会执行
第三个result()我只知道n会一直保存在内存汇总(这就是内存泄露?),除非销毁这个闭包,n才会消失
我的理解有问题,望各位指点!
也不知道我的这个问题题目有没有问对