0

可能重复:
Javascript:循环关闭?

伪javascript:

for (i, i<10, i++) {
  new element.addEvent('click', function(){ alert(i) }).inject(dom)
}

当循环完成时,所有 onclick 事件将触发带有 i 'final' 值的警报。让他们像添加 onclick 事件时那样提醒 i 的值的“正确”方法是什么?

当我说正确时,我的意思是我知道有几种方法可以实现这种行为,但我想知道标准(即可能遇到代码的人所期望的)方式。谢谢。

4

1 回答 1

3

使用闭包i在每次迭代中捕获 的值:

for (i; i<10; i++) {
    (function(i) {
         new element.addEvent('click', function(){ alert(i) }).inject(dom);
    }(i));
}
于 2012-06-19T07:44:20.290 回答