在这种情况下,“将结果传递给参数”是什么意思?

问题描述 投票:0回答:2

我试图解决这个问题,但是'将结果传递给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
    }
javascript function callback
2个回答
1
投票

在这段代码中,cb代表callback,这是一个function,它在你的第一个函数调用中作为参数传递。

因为在Javascript函数中可以作为params传递给其他函数,称为callback function

所以在这种情况下“将结果传递给cb”意味着你需要将sum变量传递给cb函数,所以只需写:

cb(sum);

有关详细信息chack MDN callback function Reference

注意:

确保在使用此代码时,将函数作为第二个参数传递,否则如果cb不是function则会抛出错误。


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) })

进一步阅读:Understanding JavaScript Callbacks

© www.soinside.com 2019 - 2024. All rights reserved.