如何在setTimeout中维护循环变量的值?Javascript
How do i maintain the value of the loop variable in a setTimeout? Javascript
基本上,我有一个循环,如果满足某个条件,它就会触发一个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);
}
}
for (var i = 0; i <= 10; i++) {
if (true) {
setTimeout((function(i) {
return function() { console.log(i); }
})(i), 1000 * i);
}
}
我想你希望时间是1000 * i
?(它已经在上面的代码中了)
相关文章:
- 调用类向后变量 (JavaScript)
- 初始化父类中的变量(JavaScript/CoffeeScript 习语)
- 可以'找不到变量javascript错误
- 输出数组变量javascript
- 自提交表单访问变量javascript
- 将变量 javascript 添加到用于旋转图像的链接中
- 在文本字段中显示保存的本地存储变量 - javascript
- 将变量添加到变量 JavaScript 中
- 获取要在变量 JavaScript 中使用的用户输入值
- 如何在变量 Javascript 中删除双引号
- 使用变量 javascript 从 json 文件中获取数据
- 读取输入和打印变量 - JavaScript 和 HTML 4.01
- 传递 PHP 变量 JavaScript 窗口位置
- 重置变量 JavaScript
- 变量 JavaScript 中的变量
- 尝试使用多个函数时无法使用全局变量 - JavaScript - 初学者
- 如何按值将数组分配给另一个变量 JavaScript
- setTimout 搞砸了变量 JavaScript
- 用内部函数变量更改外部函数变量?Javascript
- 根据变量 JavaScript 增加