关于数组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指向。

前端的学习之路漫长,慢慢写做,慢慢成长,咱们一块儿加油哦!数组

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

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

相关文章
相关标签/搜索