for循环中的闭包

1.代码

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

输出为:

2.代码(闭包,直接执行匿名函数)

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

输出为:

3.代码(let)

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

输出为:

 

posted @ 2017-10-30 14:44  zhoulixue  阅读(822)  评论(0编辑  收藏  举报