`

javascript闭包

    博客分类:
  • js
阅读更多

循环,setTimeout与闭包

for(var i=1;i<=3;i++){
setTimeout(function timer(){
console.log('i='+i);
},i*1000);
}

i=4
i=4
i=4

闭包的方式
for(var i=1;i<=3;i++){
setTimeout(
(function(i){
    return function timer(){
      console.log('i='+i);
    }
})(i)
,i*1000);
}

i=1
i=2
i=3

另一种方式
function fa(i){
   setTimeout(function timer(){
     console.log('i='+i);
   },i*1000);
}
for(var i=1;i<=3;i++){
   fa(i);
}

i=1
i=2
i=3

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics