0

这将在 1 秒后记录“7”七次。

for (var i = 0; i < 7; i++) {
    $.doTimeout(1000, function() {
        console.log(i);
    });
}

但是,如果我希望它记录 '0','1','2','3','4','5','6' 怎么办?

($.doTimeout 是Ben Alman 的插件,但我认为 setTimeout 的问题是一样的。)

谢谢!

4

1 回答 1

1
for (var i = 0; i < 7; i++) {
    (function(i) {
        $.doTimeout(1000, function() {
            console.log(i);
        });
    }(i));
}

您需要将范围与变量相关联,i以便当闭包查找它时,它会从该范围中获取值。

于 2012-04-24T15:04:17.240 回答