JavaScript中箭頭函式與傳統函式的區別
阿新 • • 發佈:2021-01-30
技術標籤:JS筆記
箭頭函式是ES6中新增的特性,下邊將介紹它和傳統函式的區別。
1.沒有this、super、arguments和new.target的繫結
在箭頭函式中,上邊的值都有與箭頭函式最近的非箭頭函式
決定。
2.不能通過new關鍵字呼叫
箭頭函式沒有沒有constructorf方法,所以就不能被用作建構函式,如果用new 關鍵字呼叫箭頭函式,程式會丟擲TypeError
。
let Test = () => 3
let b = new Test() //Uncaught TypeError: Test is not a constructor
3.沒有原型
魷魚不可以通過關鍵字new
4.不可以改變this的繫結
雖然箭頭函式仍然可以呼叫call()、apply()、bind()
三種方法,但是箭頭函式的this值不會受這三個函式的影響。
5.不支援arguments物件
箭頭函式沒有arguments物件的繫結,所以只能通過命名引數
和不定引數
兩種形式訪問函式的引數。但是箭頭函式可以訪問外圍函式的arguments物件。
6.不支援重複的命名引數
無論在嚴格還是非嚴格模式,箭頭函式都不支援重複命名的引數
,而在傳統函式中,只有嚴格模式下,才不支援重複命名的引數。