How can I create multiple setInterval()s dynamically?
本问题已经有最佳答案,请猛点这里访问。
我有一个脚本需要每个对象多次运行一个函数,但是用户在一个变量中设置了对象的数量。
它会像这样工作
1 2 3 | dothis(1); dothis(2); dothis(3); |
但是这不起作用
1 2 3 4 5 6 7 8 9 10 | for (var i = 0; i < howMany; i++) { setInterval( function() { dothis(i); }, (Math.floor(Math.random() * 10) + 1) ); } |
您需要在本地作用域中对
1 2 3 4 5 6 7 8 9 10 | for (var i = 0; i < howMany; i++) { setInterval( function(j) { return function() { dothis(j); }; }(i), (Math.floor(Math.random() * 10) + 1) ); } |
请参阅JavaScript闭包如何工作? 供进一步参考。