一尘不染

Javascript:闭环?

javascript

我想按照以下方式做一些事情:

for (var i = 0; i < 10; ++i) {
    createButton(x, y, function() { alert("button " + i + " pressed"); }
}

问题是我总是得到最终值,i因为Java语言的闭包不是按值的。
那么我该如何使用javascript呢?


阅读 604

收藏
2020-05-01

共1个答案

一尘不染

for(var i = 0; i < 10; i++) {
(function(i) {
createButton(function() { alert(“button ” + i + ” pressed”); });
})(i);
}

请注意,JSLint不喜欢这种模式。它引发“不要在循环内创建函数”。

2020-05-01