请问setTimeout()这两段代码的区别

1、这段代码一次输出i,为什么不是每秒钟逐个输出i:


    for(var i = 0 ; i < 5; i++){

        setTimeout((function(i){

            console.log(i)

        })(i), 1000*i);

    }

这段可以:


    for(var i = 0 ; i < 5; i++){

        setTimeout((function(i){

                return function(){console.log(i)}

        })(i), 1000*i);

    }

帮我解释下?


阿波罗的战车
浏览 349回答 1
1回答

子衿沉夜

因为setTimeout第一个参数为函数时候才会有延时效果,第一个例子中是立即执行了,相当于for(var i = 0 ; i < 5; i++){&nbsp; &nbsp; setTimeout(console.log(i), 1000*i);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript