我正在调用一个需要回调函数作为参数的异步函数。
这是 JavaScript 代码:
for(i in array)
{
var item = array[i];
functionToCall(item[i][1], 50, function(a, b)
{
alert(a + b);
});
}
我无法编辑 functionToCall 函数。我想要做的是在回调函数中使用“item”变量,如下所示。
for(i in array)
{
var item = array[i];
functionToCall(item[i][1], 50, function(a, b, c)
{
alert(a + b + c);
}, item);
}
但是这段代码不能正常工作。我不能只在函数内使用“item”,因为它始终使用数组中的最后一项。
那么我该怎么做呢?
最佳答案
您可以在函数内使用 item
,但您需要“捕获”它,这样您就不会每次都使用数组的最后一个元素。
for(var i = 0, l = array.length; i < l; ++i) { // better than for .. in
var item = array[i];
(function(item, i){
functionToCall(item[i][1], 50, function(a, b) // do you really re-index item with the same index?
{
alert(a + b);
});
})(item, i);
}
关于Javascript - 向回调函数添加更多参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7209306/