js原型重构forEach和map
时间: 2023-07-06 12:43:01 浏览: 116
首先,我们需要理解原型链以及原型链中的方法。在 JavaScript 中,每个对象都有一个原型(prototype)指向另一个对象或 null。原型对象也可以有自己的原型,最终形成一个原型链。在原型链中,如果某个对象没有某个方法,它会去原型链中去查找该方法,直到找到该方法或者查找到原型链的末端为止。
现在我们来重构 forEach 和 map 方法。假设我们有一个数组 arr,我们可以通过以下代码给数组的原型链添加 forEach 和 map 方法:
```
Array.prototype.myForEach = function(callback) {
for (let i = 0; i < this.length; i++) {
callback(this[i], i, this);
}
};
Array.prototype.myMap = function(callback) {
const newArray = [];
for (let i = 0; i < this.length; i++) {
newArray.push(callback(this[i], i, this));
}
return newArray;
};
```
在上面的代码中,我们通过给 Array.prototype 添加 myForEach 和 myMap 方法,即可在数组上调用这两个方法。
使用示例:
```
const arr = [1, 2, 3, 4];
arr.myForEach((item, index, array) => {
console.log(item, index, array);
});
const newArr = arr.myMap((item, index, array) => {
return item * 2;
});
console.log(newArr);
```
通过上述代码,我们成功重构了 forEach 和 map 方法。
阅读全文