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);
}
帮我解释下?
因为setTimeout第一个参数为函数时候才会有延时效果,第一个例子中是立即执行了,相当于