基本上,我有一个循环,如果满足特定条件,则会触发 setTimeout。 但超时函数需要循环的值(即“i”),如下例所示。 我该怎么做?
for( var i = 0; i <= 10; i++) {
if(something){
setTimeout(function(){
console.log(i);
}, 1000);
}
}
最佳答案
使用IIFE (立即调用函数表达式),它是一种 JavaScript 设计模式,它使用 JavaScript 的函数作用域来生成词法作用域。
for( var i = 0; i <= 10; i++) {
if(something){
(function(i){
setTimeout(function(){
console.log(i);
}, 1000);
})(i);
}
}
关于javascript - 如何在 setTimeout 中维护循环变量的值? JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34568642/