一:使用let
for(let i=0;i<5;i++){
setTimeout(function(){
console.log(i);
},1000);
}複製程式碼
二:使用閉包
for(var i=0;i<5;i++){
(function(j){
setTimeout(function(){
console.log(j);
},1000);
})(i);
}複製程式碼
三:引數傳遞是按值傳遞
var out = function(j){
setTimeout(function(){
console.log(j);
},1000);
};
for(var i=0;i<5;i++){
out(i);
}複製程式碼