this 在 JavaScript 中是個很容易被誤解的主題,主要會跟呼叫方法以及函式類型有關,導致很多非預期的結果出現。讓我們來重新好好認識 this 吧!
傳統函式
this 指的是「函式被誰呼叫(呼叫的主體)」
傳統函式中的 this 只跟「調用方式」有關,物件下呼叫的 this 基本上都是指向該物件
JS()是直接呼叫,沒有物件當作接頭人- 所以
this是 全域物件(在瀏覽器是window) this.A變成window.A,所以是'Global'
箭頭函式
箭頭函式的 this 取決於定義它的那一刻所處的外層作用域,不是哪個物件「擁有」或「執行」它時。
箭頭函式會自動加上 return(若省略大括號),箭頭函式沒有自己的 this,this 會繼承外層函式作用域,this 請往外層看
this繼承外層
