var data = [];
for(var k = 0; k < 3; k++){
data[k] = function(){
return k;
};
}
alert(data[0]());//3
作用域升级了
所以var k,将k变成了同一个。
而下面的let
let data = [];
for(var k = 0; k < 3; k++){
data[k] = function(){
return k;
};
}
alert(data[0]());//3