函数继承的Javascript变量

时间:2012-06-19 07:41:50

标签: javascript

  

可能重复:
  Javascript: closure of loop?

伪javascript:

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

当循环结束时,所有onclick事件将触发具有i的'final'值的警报。什么是让他们提醒我的价值的“正确”方式,就像添加onclick事件时一样?

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

1 个答案:

答案 0 :(得分:3)

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

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