函數上下文與閉包

作用域鏈

作用域鏈的查找過程中有兩個方向
  • 本身的作業域鏈
  • 作用域鏈中對象的原型鏈

    優先查找原型鏈

閉包

閉包是一系列代碼塊(在ECMAScript中是函數),並且靜態保存所有父級的作用域。通過這些保存的作用域來搜尋到函數中的自由變量。

函數在定義時,將外部上下文的變量保存在[[scope]]屬性中,且不再改變,這就是靜態作用域;如果多個函數共用同一個外部上下文,則他們的[[scope]]屬性將指向同一個作用域鏈,共享變量,其結果是這個函數會相互影響

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章