js块循环

/* var funcs = [];
for(var i=0;i<10;i++){
funcs.push(function(){console.log(i);});
}
funcs.forEach(function(func){
func();
});
// 输出数值 "10" 十次,原因是i是共享variable */

// 解决方法1:立即调用函数表达式
/* var funcs = [];
for (var i=0;i<10;i++){
funcs.push(function(value){
return function(){
console.log(value);
}
}(i));
}
funcs.forEach(function(func){
func();
}); */

// 解决方法2:es6块级作用 let
var funcs = [];
for(let i=0;i<10;i++){
funcs.push(function(){
console.log(i);
});
}
funcs.forEach(function (func) {
func();

});

你可能感兴趣的:(js块循环)