作用域鏈和原型鏈的理解

2021-09-26 14:54:31 字數 350 閱讀 7268

作用域鏈:函式執行會形成乙個私有的作用域,形參和在當前私有作用域中宣告的變數都是私有變數,當前的私有作用域有自我保護機制,私有變數中遇到乙個非私有的變數,則向它的上級作用域找,如果還不是上級作用域私有的,則繼續向上查詢,一直找到window為止。這種變數一層層向上查詢的機制:作用域鏈機制。

原型鏈:

例項在自己的私有屬性中進行查詢,如果不是私有屬性,基於__proto__向所屬類的原型上進行查詢,如果在找不到,則繼續基於__proto__向上查詢,一直找到object.prototype為止,例如:

obj.hasownproperty() 這裡調取的hasownproperty這個屬性就是找到object.prototype才找到的。

理解作用域鏈和原型鏈

作用域鏈的概念 要理解es中作用域鏈,首先要從理解執行環境開始。es中 執行都是在乙個具體的執行環境中進行的,每個執行環境有乙個與之關聯的變數物件,該變數中包含著在這個執行環境中可以訪問的變數和函式。這裡所說的執行環境就相當於作用域。最外圍的執行環境是全域性環境,在web瀏覽器中也就是window物...

理解js作用域鏈 原型鏈

關於global object global object 其實就是 變數物件。當js編譯器開始執行的時候,會初始化乙個global object 來關聯全域性的作用。對於全域性作用域而言,global object j就是variable object.在瀏覽器端 被具象成為window 物件。也...

作用域鏈與原型鏈

1 什麼是作用域鏈 當 在乙個環境中執行時,會建立變數物件的乙個作用域鏈。由子級作用域返回父級作用域中尋找變數,就叫做作用域鏈。作用域鏈中的下乙個變數物件來自包含環境,也叫外部環境。而再下乙個變數物件則來自下乙個包含環境,一直延續到全域性執行環境。全域性執行環境的變數物件始終都是作用域鏈中的最後乙個...