都知道如果在循环中设置一个定时器,用var且不将内部函数改为立即执行函数的情况下,会循环打印出5 for(var i = 0;i<5;i++){
setInterval(function(){
console.log(i,"i")
},200);
}结果:这种情况会一直打印出0、1、2、3、4、0、1、2、3.... for(var i = 0;i<5;i++){
(function(i){
setInterval(function(){
console.log(i,"i")
},200);
})(i)
}结果:这种写法只打印一次0、1、2、3、4,为什么?for(var i = 0;i<5;i++){
setInterval(function(i){
console.log(i,"i")
}(i),200);}结果
添加回答
举报
0/150
提交
取消