0

これにより、1 秒後に「7」が 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 に答える