// 预期结果:一直打印6 for(var i=1;i<=5;i++){ setTimeout(function(){ console.log(i); },i*1000) }
for(var i=1;i<=5;i++){ (function(){ setTimeout(function timer(){ console.log(i); },i*1000) })() } //666666
形成闭包或者使用let就可以实现
for(var i=1;i<=5;i++){ (function(){ var j=i setTimeout(function(){ console.log(j); },j*1000) })() } //1 2 3 4 5 6 for(var i =1;i<=5;i++){ (function(j){ setTimeout(function(){ console.log(j); },j*1000) })(i) } // 使用let for(let i =1;i<=5;i++){ setTimeout(function timer(){ console.log(i); },i*1000) }
原文:https://www.cnblogs.com/chorkiu/p/12132724.html