一、代码:

var bulangArr = [1,2,3,4,5];
for(var i=0,j=bulangArr.length;i<j;i++){
    (function(Index){
        setTimeout(function(){
            console.log(bulangArr[Index]);
        },Index*1000);
    })(i);
}

二、注释:

    如果不适用匿名函数所有的setTimeout使用的i是在同一个作用域里面的同一个变量,所以前面的会被后面的替换掉,这里匿名函数的作用就是给i写一个代理作用域,然后延时不同的时间执行达到想要的效果

官方公众号