慕虎7371278
2019-03-07 14:09:11
for (var i = 1; i < 5; i++) { setTimeout(function(i) { console.log(i); }, 1000 * i);}上面的代碼,打印出來為什么是四個undefined,變量i的值為什么傳不進(jìn)去
4 回答

翻翻過去那場雪
TA貢獻(xiàn)2065條經(jīng)驗 獲得超14個贊
簡單的道理,你調(diào)用函數(shù)沒傳參數(shù)但在函數(shù)內(nèi)用到了參數(shù)
for (var i = 1; i < 5; i++) {
setTimeout(function(i) {
console.log(i);
}, 1000 * i, i);
}

RISEBY
TA貢獻(xiàn)1856條經(jīng)驗 獲得超5個贊
for (var i = 0; i < 5; i++) {
setTimeout(function(i) {
return function() {
console.log(i)
}
}(i), 1000 * i)
}
可以這樣通過閉包來實現(xiàn),你的代碼沒有傳參
添加回答
舉報
0/150
提交
取消