什么将结果传递给参数'这个意思是什么意思?

时间:2017-12-19 22:17:55

标签: javascript function callback

我试图解决这个问题但是将结果传递给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
    }

2 个答案:

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

进一步阅读:Understanding JavaScript Callbacks

答案 1 :(得分:1)

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

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

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

cb(sum);

有关详细信息,请访问MDN callback function Reference

注意:

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