gpt4 book ai didi

javascript:在函数(){}中使用当前的for循环计数器值?

转载 作者:搜寻专家 更新时间:2023-11-01 05:02:49 25 4
gpt4 key购买 nike

在网站上我想这样做:(简化)

myHandlers = new Array();
for(var i = 0; i < 7; i++) {
myHandlers.push(new Handler({
handlerName: 'myHandler'+i, // works, e.g. ->myHandler1, 2, 3 etc.
handlerFunc: function(bla) { /*...*/ alert(i); } // doesn't work,all return 7
}
}

我可以将计数器设置为我的处理程序的另一个属性(它会复制当前值)并在我的函数中使用它,但我想,还有一种方法可以实际复制这个值,不是吗?

最佳答案

当调用handlerFunc时,函数内部的i是指for循环的i。但是 i 可能不再具有相同的值。

在匿名函数的范围内使用闭包绑定(bind)i的当前值:

handlerFunc: (function(i) { return function(bla) { /*...*/ alert(i); }; })(i)

此处使用并立即调用匿名函数(function(i) { … })(i)。此函数将for 循环的i 的值绑定(bind)到本地ii 然后独立于 for 循环的 i

关于javascript:在函数(){}中使用当前的for循环计数器值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3448195/

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