今天,开始正式开始搭建自己的前端学习之路,必不可少的当然就是开始搭建自己的知识库了。
好了,废话不多说,想必大家对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指向。 
 

前端的学习之路漫长,慢慢写作,慢慢成长,我们一起加油哦!

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

欢迎各位小伙伴对我批评指正,谢谢!


梅江燕
1 声望2 粉丝

前端菜鸟一枚,走在进阶的路上