我不理解为什么此函数按照预期的顺序输出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