箭頭函數的this、arguments詳解


1、箭頭函數沒有自己的this,arguments,super或new.target。
2、它的this、arguments都是在定義函數時綁定外層的this和arguments,而不是在執行過程中綁定的,所以不會因為調用者不同而發生變化。
3、箭頭函數若想得到自身的入參列表arguments,必須使用剩余參數表示法。
4、箭頭函數表達式更適用於那些本來需要匿名函數的地方,並且它不能用作構造函數。

下面我們以arguments為例進行驗證,this同理

var obj = {};
obj.fn = function(){
  let arrow = (...args) =>{
    console.log('入參列表 : ', arguments); //外層的入參列表
    console.log('剩余參數 : ', args); //使用剩余參數表示法獲得的自身入參列表
  }
  arrow(4,5,6)
}

obj.fn(1,2,3)

以下是輸出結果

入參列表 : Arguments(3) [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ]
剩余參數 : (3) [4, 5, 6]

由上述驗證我們可以發現箭頭函數arrow使用arguments獲取入參列表時,實際上得到的是外層函數的arguments。而this也是一個道理。


免責聲明!

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



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