程序代码如下:
let nAdd;
let t = () => {
let n = 99;
nAdd = () => {
n++;
};
let t2 = () => {
console.log(n);
};
return t2;
};
let a1 = t();
let a2 = t();
nAdd();
a1(); //99
a2(); //100
a2()结果的值用闭包的原理可以解释的通,因为nAdd在函数外面,在函数里面引用,nAdd引用了变量n,导致n不会被回收,也就是闭包里面保存局部变量的作用。可是为什么a1一直是返回99呢?
红糖糍粑
慕妹3146593
素胚勾勒不出你
心有法竹
相关分类