• 431

关于setTimeout()函数

for( var i = 1; i < 10; i++ ){
    setTimeout( function(){
        colsole.log(i);
    }, i * 1000);
}

我能理解为什么最后输出的全是10, 但是我不能理解为什么是1秒1次;求解答?

按我的理解,应该是第一次1秒,第二次2秒,,依次下去

阅读 2.5k
评论
    8 个回答

    应该是几乎同时设置了9个setTimeout, 而不是每秒钟设置一个setTimeout,所以造成了第一个1s后2s的事件刚好触发

    0s 1 2 3
    1s 触发 -- --
    2s -- 触发 --
    3s -- -- 触发
      相似问题
      推荐文章