高阶函数(例如.map())如何在JavaScript中内部工作?

比拉尔·汗(Bilal Khan):

如今,每个人都试图使用这些高阶函数以更少的代码来获得有希望的结果。但是我不知道这些功能在内部如何工作。

假设我写类似

var numbers = [16, 25, 36];
var results = numbers.map(Math.sqrt);
console.log(results); // [4, 5, 6]

我知道'number'数组的每个元素都在一个一个地迭代,但是怎么做呢?

我试图进行搜索,但没有得到满意的答复。

某些性能:

.map只是一个接受回调,为数组的每个项目调用回调并将值分配给新数组的方法。没什么特别的。您甚至可以很容易地自己实现它:

Array.prototype.myMap = function(callback) {
  const newArr = [];
  for (let i = 0; i < this.length; i++) {
    newArr.push(callback(this[i], i, this));
  }
  return newArr;
}

var numbers = [16, 25, 36];
var results = numbers.myMap(Math.sqrt);
console.log(results); // [4, 5, 6]

为了完全符合规范,您还需要检查the this是一个对象,the callback是可调用的,并检查是否存在.call传递给第二个参数的回调myMap,但这些细节不会对于开始理解高阶函数很重要。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章