关于数组forEach要领的封装

本日,最先正式最先搭建本身的前端进修之路,必不可少的固然就是最先搭建本身的学问库了。
好了,空话不多说,想必人人对ES5的forEach要领并不生疏吧,然则你晓得他是怎样完成的吗?我们本身能不能也封装一个如许的要领供我们本身运用呢。

**放上简单版代码:**

    Array.prototype.forEach = function myForEach(fn = function() {}, direction) {
   for (let i = 0; i < this.length; i++) {
    // 此处写 fn.apply(direction, [this[i], i, this])也是能够的哟
    // 细致学问就要去看apply,bind,call的相干学问点啦
    // direction 代表this的指向
        fn.bind(direction, [this[i], i, this])();
    }
}

**运转示例:**
 // 运用
let arr = [1, 2, 3];
let arr1 = [4, 5, 6];
arr.forEach(function(item, index, a) {
    // this 指向arr1
    console.log('this=', this)
}, arr1);
   

**触及学问点:**
  1. forEach(()=>{},direction)中第二个参数的作用(转变函数内的this指向)
  
  2. [1,2,3].forEach(function(item,index,direction) {
     console.log(item);
    })封装的思绪在哪(this指向的是这个数组,数组要想传入函数就要用到this关键字)
    
  3. apply,this,call的运用,此处用于转变函数this指向。 
 

前端的进修之路冗长,逐步写作,逐步生长,我们一同加油哦!

这是我第一篇本身的文章,好期待一年后的我还在坚持着写文章哪!

迎接列位小伙伴对我批评指正,感谢!

    原文作者:梅江燕
    原文地址: https://segmentfault.com/a/1190000019016189
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞