<分区>
这个问题看起来 super 原始,但我想不通。
我有这样的代码。我希望结果是三个警报“0”、“1”和“2”。然而,事实并非如此——我得到了三个 2。
for(var i=0; i<3; i++) {
var j=i;
setTimeout(function() {
alert(j);
},1000);
}
密码在http://jsfiddle.net/8UMCA/ .
如何“修复”代码以使其发出“0”-“1”-“2”警报?
标签 javascript
<分区>
这个问题看起来 super 原始,但我想不通。
我有这样的代码。我希望结果是三个警报“0”、“1”和“2”。然而,事实并非如此——我得到了三个 2。
for(var i=0; i<3; i++) {
var j=i;
setTimeout(function() {
alert(j);
},1000);
}
密码在http://jsfiddle.net/8UMCA/ .
如何“修复”代码以使其发出“0”-“1”-“2”警报?
最佳答案
或者这个
for(var i=0; i<3; i++) {
(function(){
var j=i;
setTimeout(function() {
alert(j);
},1000);
}
)();
}
关于javascript - 如何在for循环中使用索引变量创建函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22211020/
相关文章:
javascript - Stage.addchild 将对象置于前面
javascript - 使用 javascript 操作 css 边框以自定义
javascript - 在 javascript 中访问多维数组中的所有子元素 "mathematica"
javascript - 在没有 $scope 的情况下使用 $watch( Controller 作为语法)
javascript - 移动到表内 keyup 上的下一个输入字段
javascript - 从txtfield中获取并连接到数据库以及nodeJS
javascript - 如何在 HTML 表格中设置单元格的背景?