当我以这种方式设置回调数组时,我在所有回调的对话框窗口中得到 20。我想获取数组中的索引。这可能吗?调用回调的函数期望回调有一个参数。我不控制回调的调用者,因为它是外部库的一部分。任何帮助表示赞赏。
for (var i = 0; i < 20; i++) {
callbackDB[i] = function(data) {
alert(i);
}
}
Because i
在调用函数时评估,您需要确定该值的范围i
在新函数执行中以保留您期望的值。
// returns a function that closes around the `current_i` formal parameter.
var createFunction = function( current_i ) {
return function( data ) {
alert( current_i );
};
};
// In each iteration, call "createFunction", passing the current value of "i"
// A function is returned that references the "i" value you passed in.
for (var i = 0; i < 20; i++) {
callbackDB[i] = createFunction( i );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)