javascript中的this & 執行上下文

本系列文章是本人學習相關知識時所積累的筆記,以記錄自己的學習歷程,也爲了方便回顧知識;故文章內容較爲隨意簡練,抱着學習目的來的同學務必轉移他處,以免我誤人子弟~

參考資料
阮一峯:Javascript 的 this 用法
MDN:this

  • this是函數運行時,在函數體內部自動生成的一個對象,只能在函數體內部使用。
  • the value of this is determined by how a function is called
  • 作爲普通函數:this 指向全局對象
  • 作爲對象方法:this 指向對象本身
  • 作爲構造函數:this 指向該構造函數創建的實例
  • 使用 apply、call、bind 調用:this 指向指定的對象

箭頭函數的this

function 中的this指向調用該函數時所在的環境變量;
() => {} 中的this指向定義該函數時所在的環境變量;

因此,箭頭函數不可使用apply、call、bind 調用,箭頭函數會忽視指定對象

執行上下文

參考資料
js:interviewMap
掘金:[譯] 理解 JavaScript 中的執行上下文和執行棧

  • 執行棧(調用棧):用來存放代碼運行時產生的全部執行上下文
  • 執行上下文:創建階段和調用階段
  • 詞法環境組件和變量環境的一個不同就是前者被用來存儲 函數聲明和變量(let 和 const) 綁定,而後者只用來存儲 var 變量綁定
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章