箭頭函數的坑——arguments無法使用


 

1.箭頭函數有作用域(詞法作用域),詞法作用域簡單來講就是,一切變量(包括this)都根據作用域鏈來查找。

2.箭頭函數中的this因為綁定了詞法作用域,所以始終指向自身外的第一個this(由於自身沒有聲明this,所以會去作用域鏈上找this),也就是始終等於調用它的函數的this(以為這個this離它最近)。

3.嚴格模式下不允許使用arguments(規定),並且,普通函數里 arguments 代表了調用時傳入的參數,但是箭頭函數不是,箭頭函數會把 arguments 當成一個普通的變量,順着作用域鏈由內而外地查詢(詞法作用域)

4.arguments可以用...rest取代,所以完全沒必要追求argument。

 

替代:

let func = (...rest) => {
  console.log(rest)
  //[1,2,3]
}

func(1,2,3)

 


免責聲明!

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



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