如何将回调传递给函数?

时间:2019-11-15 11:22:48

标签: javascript function callback functional-programming

为我提供了以下解决方案:

var s = [23, 65, 98, 5];

Array.prototype.myMap = function(callback) {
  var newArray = [];
  // Add your code below this line
  this.forEach(a => newArray.push(callback(a)));
  // Add your code above this line
  return newArray;
};

var new_s = s.myMap(function(item) {
  return item * 2;
});

想法是为.map()方法构建自己的替代方法。

我的问题是了解回调部分。到目前为止,我对回调的理解是一个传递给另一个函数(作为arg)并在其他事件之后调用的函数。

我看不到另一个函数在解决方案中作为回调传递到哪里,所以我努力理解该练习,主要是:this.forEach(a => newArray.push(callback(a)));

有没有人可以帮我澄清一下?

1 个答案:

答案 0 :(得分:1)

通过将调用替换为函数代码本身,可以轻松地可视化同步回调。

在函数调用中,callback等于:

  function(item) {  return item * 2; }

如果我们将其插入此行:

  this.forEach(a => newArray.push(callback(a)));

我们得到:

  this.forEach(a => newArray.push(
     /*item = a*/
     /*return*/ a * 2;
   ));

或者换句话说,对于数组中的每个aa * 2被推送到newArray

相关问题