1. 程式人生 > 實用技巧 >JavaScript ES6 箭頭函式 匿名函式 普通函式

JavaScript ES6 箭頭函式 匿名函式 普通函式

箭頭函式

箭頭函式是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