【发布时间】:2013-11-19 10:59:47
【问题描述】:
我想这个问题以前有人问过,但我找不到答案,也许我缺少描述我的问题的好词。
我有一个循环,每次迭代我都会创建一个对象,并添加一个事件监听器,回调函数使用创建的对象。
for(var i in items)
{
x = new SomeClass(i)
someAPI.event.addListener(i, 'click', function(ev){
x.someMethod()
});
}
会发生什么,我理解为什么,事件函数定义中的变量 x 仅在事件触发时才被评估,x 等于该名称影响的最后一个值,即是最后一次迭代时给出的值。
我想知道如何在事件函数定义中获得想要的行为,即在循环中获取x 的当前值。
谢谢。
【问题讨论】:
标签: javascript events variables loops scope