gpt4 book ai didi

Javascript:闭环?

转载 作者:数据小太阳 更新时间:2023-10-29 05:43:00 25 4
gpt4 key购买 nike

我想做以下事情:

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

问题是我总是得到 i 的最终值,因为 Javascript 的闭包不是按值的。
那么我该如何使用 javascript 做到这一点呢?

最佳答案

如果您为使用 JavaScript 1.7 或更高版本的浏览器编写代码,一个解决方案是使用 let 关键字:

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

来自 MDC 文档中心:

The let keyword causes the item variable to be created with block level scope, causing a new reference to be created for each iteration of the for loop. This means that a separate variable is captured for each closure, solving the problem caused by the shared environment.

查看 MDC Doc Center对于传统方法(创建另一个闭包)。

关于Javascript:闭环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5555464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com