关于JavaScript中注意的点

看下面代码,给出输出结果。

for(var i=1;i<=3;i++){
  setTimeout(function(){
      console.log(i);   
  },0); 
};

  答案:4 4 4。

原因:Javascript事件处理器在线程空闲之前不会运行。追问,如何让上述代码输出1 2 3?

for(var i=1;i<=3;i++){
   setTimeout((function(a){  //改成立即执行函数
       console.log(a);   
   })(i),0); 
};

  

posted on 2016-09-21 09:58  _cindy  阅读(269)  评论(0编辑  收藏  举报