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); }帮我解释下?
1 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
因为setTimeout第一个参数为函数时候才会有延时效果,第一个例子中是立即执行了,相当于
for(var i = 0 ; i < 5; i++){
setTimeout(console.log(i), 1000*i);
}
添加回答
举报
0/150
提交
取消