1. 程式人生 > 其它 >JavaScript中箭頭函式與傳統函式的區別

JavaScript中箭頭函式與傳統函式的區別

技術標籤: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

呼叫箭頭函式,因此沒有原型,所以也沒有prototype這個屬性。

4.不可以改變this的繫結

雖然箭頭函式仍然可以呼叫call()、apply()、bind()三種方法,但是箭頭函式的this值不會受這三個函式的影響。

5.不支援arguments物件

箭頭函式沒有arguments物件的繫結,所以只能通過命名引數不定引數兩種形式訪問函式的引數。但是箭頭函式可以訪問外圍函式的arguments物件。

6.不支援重複的命名引數

無論在嚴格還是非嚴格模式,箭頭函式都不支援重複命名的引數,而在傳統函式中,只有嚴格模式下,才不支援重複命名的引數。