我想按照以下方式做一些事情:
for (var i = 0; i < 10; ++i) { createButton(x, y, function() { alert("button " + i + " pressed"); } }
问题是我总是得到最终值,i因为Java语言的闭包不是按值的。 那么我该如何使用javascript呢?
i
for(var i = 0; i < 10; i++) { (function(i) { createButton(function() { alert(“button ” + i + ” pressed”); }); })(i); }
请注意,JSLint不喜欢这种模式。它引发“不要在循环内创建函数”。