错误代码:
for(let i=0;i<5;i++){
window.setTimeout(function(){
console.log(j);
},5000*i);
}
此时全部打印出5
正确方法:使用闭包函数,在进入setTimeout将值传入函数内部,保证内部变量不会随外部变量的变化而改变
for(let i=0;i<5;i++){
(function(j) {
window.setTimeout(function(){
console.log(j);
},5000*i);
})(i);
}