我试图解决这个问题,但是'将结果传递给cb'让我有点困惑。如果我将结果分配给cb,当我调用函数时,它是否会忽略我在cb所在位置的任何参数?任何帮助表示赞赏。
function sumArray(numbers, cb) {
var sum = 0;
for (var i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
return sum;
// sum up all of the integers in the numbers array
// pass the result to cb (This is my problem).
// no return is necessary
}
在这段代码中,cb
代表callback
,这是一个function
,它在你的第一个函数调用中作为参数传递。
因为在Javascript函数中可以作为params传递给其他函数,称为callback
function。
所以在这种情况下“将结果传递给cb”意味着你需要将sum
变量传递给cb
函数,所以只需写:
cb(sum);
有关详细信息chack MDN callback function Reference。
注意:
确保在使用此代码时,将函数作为第二个参数传递,否则如果cb
不是function
则会抛出错误。
在JavaScript中,您可以将函数作为参数传递。在这种情况下,cb
可能是一个函数,你可以在其中进行论证。例如
cb(sum)
cb是“回拨”的常见缩写
函数sumArray
可以像这样调用:
sumArray([1,2,3], function (arg1) { alert("result " + arg1) })
完整示例:
function sumArray(numbers, cb) {
var sum = 0;
for (var i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
cb(sum);
// sum up all of the integers in the numbers array
// pass the result to cb (This is my problem).
// no return is necessary
}
sumArray([1,2,3], function (arg1) { alert("result " + arg1) })