箭頭函數不可以new。
ES6允許使用箭頭定義函數。其基本語法是:參數=>函數體;(參數)=>{函數體}。
當箭頭函數的參數只有壹個時其小括號可以省略。但是當參數沒有或者有大於1個時必須要有小括號。當箭頭函數的內部只有壹條語句並且需要返回該結果時,可以省略大括號。
當其要返回的是對象時,為了區分代碼塊,必須要在對象外面加上括號。箭頭函數不能用作創建對象,即不能new,會報錯。註意點:箭頭函數中的this與之前的函數this不壹樣。不能通過call()等方法修改this指向。
箭頭函數中this會指向其最近的嵌套級的方法和函數的對象。因此在回調函數中常用箭頭函數的特性封裝回調函數。註意點:箭頭函數中沒有arguments取所有的參數,可以通過(...rest)取出剩余的值。除此外super、new.target在箭頭函數中也是不存在的。
箭頭函數的特點:
1、相比普通函數,箭頭函數有更加簡潔的語法。
2、函數不綁定this,會捕獲其所在上下文的this,作為自己的this。
3、箭頭函數是匿名函數,不能作為構造函數,不可以使用new命令,否則後拋出錯誤。
4、箭頭函數不綁定arguments,取而代之用rest參數解決,同時沒有super和new.target。
5、使用call,apply,bind並不會改變箭頭函數中的this指向。
6、箭頭函數沒有原型對象prototype這個屬性。
7、不能使用yield關鍵字,不能用作Generator函數。