JavaScript ES6 箭頭函式 匿名函式 普通函式
阿新 • • 發佈:2020-07-12
箭頭函式
箭頭函式是ES6的新特性,簡化了函式的寫法
普通函式
this指向呼叫者
具有prototype
匿名函式
this指向window
具有prototype
表現為function後面不帶名字的函式,但是可以用一個變數接收,通過執行這個變數來執行這個函式
箭頭函式
1 沒有原型prototype
2 因為沒有原型,因此沒有super用於訪問原型屬性
3 沒有arguments,如果有一定是父級作用域的arguments
4 箭頭函式自身沒有this,它的this來源於作用域鏈(作用域相對於函式,原型相對於物件),this指向依然是父級作用域(或者說上下文)的this指向
5 箭頭函式是匿名函式,所謂匿名函式,就是function後面不帶名字的函式,但是可以用一個變數接收,通過執行這個變數來執行這個函式
6 箭頭函式不能作為建構函式使用(建構函式的this指向由他例項化出來的物件,而匿名函式沒有this,它的this是父級作用域的this),它和new關鍵字一起使用的時候會丟擲異常
7 不能使用new.target關鍵字返回建立例項的建構函式(類)本身
new.target的使用
//new.target 用於方法內
//當方法作為構造時,返回建立該例項的建構函式
//當方法不作為建構函式時,返回undefined
//可用於判斷是否使用new 關鍵字創造了例項
function Animal(){
console.log(new.target)
}
Animal()// undefined
new Animal();// Animal