這是箭頭函式

在功能上是指用於呼叫該函式的例項物件,但在箭頭函式等於其中箭頭函式定義的函式。

讓我們理解使用圖表 https://i.stack.imgur.com/iRsl1.jpg

瞭解使用示例。

var normalFn = function(){
   console.log(this) // refers to global/window object.
}

var arrowFn = () => console.log(this); // refers to window or global object as function is defined in scope of global/window object
    
var service = {

    constructorFn : function(){

        console.log(this); //  refers to service as service object used to call method.

        var nestedFn = function(){
            console.log(this); // refers window or global object because no instance object was used to call this method.
        }
        nestedFn();
    },
    
    arrowFn : function(){
        console.log(this); // refers to service as service object was used to call method.
        let fn = () => console.log(this); // refers to service object as arrow function defined in function which is called using instance object.
        fn();
    } 
}

// calling defined functions
constructorFn();
arrowFn();
service.constructorFn();
service.arrowFn();

在箭頭函式中,是詞法範圍,它是定義箭頭函式的函式範圍。
第一個例子是定義函式的傳統方式,因此,指的是全域性/視窗物件。
在第二個示例中,用於箭頭函式內部,因此指的是定義它的範圍(即視窗或全域性物件)。在第三個示例中,是服務物件,因為服務物件用於呼叫函式。
在第四個例子中,箭頭函式是從範圍為 service 的函式定義和呼叫的,因此它列印服務物件。

注意: - 全域性物件在 Node.Js 中列印,windows 物件在瀏覽器中列印。