我试图解决这个问题但是将结果传递给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
}
答案 0 :(得分:1)
在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) })
答案 1 :(得分:1)
在此代码中,cb
代表callback
,它是function
,在您的第一个函数调用中作为参数传递。
因为在Javascript函数中可以作为params传递给其他函数,这些函数称为callback
function。
所以在这种情况下&#34;将结果传递给cb&#34;,意味着你需要将sum
变量传递给cb
函数,所以只需写:
cb(sum);
有关详细信息,请访问MDN callback function Reference。
注意:强>
确保在使用此代码时,将函数作为第二个参数传递,否则如果cb
不是function
则会抛出错误。