var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 10
变量泄露导致上面的a[6]变成10;
我不太理解 这里为什么a[6]是10,我的错误思维如下
a[6] 这里没有变量, 所以内存泄露源于循环
循环中,每次都是把当前次数赋值给对应的数组,
a[0] = function () { console.log(0);};
a[1] = function () { console.log(1);};
......
a[9] = function () { console.log(9);};
再每一次赋值的时候i的值是正确的,赋值后,每个函数都是固定输出一个数字,也不存在变量
3.请问 我的思维错在哪里了
拉风的咖菲猫
慕码人2483693
泛舟湖上清波郎朗
梵蒂冈之花
慕田峪4524236
慕的地6264312
相关分类