關於數組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

歡迎各位小夥伴對我批評指正,謝謝!函數

相關文章
相關標籤/搜索