我不理解爲什麼此函數按照預期的順序輸出1-5,但是以1秒爲間隔而不是1,2,3等。seconds 。我不熟悉setTimeout函數,我知道這裏有一些我沒有看到的函數參數。JavaScript中的setTimeout函數不會以正確的時間間隔輸出數字
var counter = function() {
for (var i = 1; i <= 5; i++) {
(function(x){
setTimeout(function timer() {
console.log(x);
}, (x * 1000));
})(i);
}
};
這是因爲所有的在同一時間5'setTimeout'得到觸發,但具有不同的延遲。所以,因爲他們等了1 - 5秒,他們會在彼此之後發生一秒鐘。 – putvande