es6的箭頭函數和es5的function函數區別


一.es6的箭頭函數
es6箭頭函數內部沒有this,使用時會上朔尋找最近的this
不可以做構造函數,不能使用new命令,因為沒有this
函數體內沒有arguments,可以使用rest參數代替
不能用yield,不能使用generator函數
二.疑問
下面代碼中的箭頭函數arrows的this指向window

let obj = {
  aaa: '123',
  arrows : () => {
    console.log('arrows',this);
  },
  func : function () {
    console.log('func',this);
  }
}

obj.arrows(); // window
obj.func(); // obj

結合實例就是這樣 

var obj={

  1.  
    a :()=>{
    1.  
        console.log(this)
  2.  
    },
  3.  
    b: function () {
    1.  
        console.log(this)
  4.  
    }. bind(this)
  5.  
    }
  6.  
    obj.a()//obj.a
  7.  
    obj.b()//obj.b
  8.  
    復制代碼

當當當當,這下就很舒服了,對於一個不怎么喜歡看文字的人來說,辛苦地背那些內容,不如用代碼說話簡單,至於為什么不加bind(this)的時候,this會指向obj;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM