JS,动态回调函数(即动态常量),点击示例

时间:2016-11-18 09:46:43

标签: javascript callback ecmascript-6

我的代码是:

for (i = 0; i < 3; i++) {
   elem[i].click(function(event) { alert(i); });
}

不幸的是,这不起作用。不知道如何使ii中的elem[i]保持同一警报。

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该使用let来定义变量i。与var不同,let定义的变量是块作用域。因此,每次迭代后都不会覆盖它们。

for (let i = 0; i < 3; i++) {
   elem[i].click(function(event) { alert(i); });
}

顺便说一下,当ES6可用时,在这种情况下使用闭包通常是个坏主意。这有点矫枉过正。