W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
當(dāng)控制器轉(zhuǎn)入 ECMA 腳本的可執(zhí)行代碼時,控制器會進入一個執(zhí)行環(huán)境。當(dāng)前活動的多個執(zhí)行環(huán)境在邏輯上形成一個棧結(jié)構(gòu)。該邏輯棧的最頂層的執(zhí)行環(huán)境稱為當(dāng)前運行的執(zhí)行環(huán)境。任何時候,當(dāng)控制器從當(dāng)前運行的執(zhí)行環(huán)境相關(guān)的可執(zhí)行代碼轉(zhuǎn)入與該執(zhí)行環(huán)境無關(guān)的可執(zhí)行代碼時,會創(chuàng)建一個新的執(zhí)行環(huán)境。新建的這個執(zhí)行環(huán)境會推入棧中,成為當(dāng)前運行的執(zhí)行環(huán)境。
執(zhí)行環(huán)境包含所有用于追蹤與其相關(guān)的代碼的執(zhí)行進度的狀態(tài)。精確地說,每個執(zhí)行環(huán)境包含如表 19 列出的組件。
表19——執(zhí)行環(huán)境的狀態(tài)組件組件 | 作用目的 |
---|---|
詞法環(huán)境 | 指定一個詞法環(huán)境對象,用于解析該執(zhí)行環(huán)境內(nèi)的代碼創(chuàng)建的標識符引用。 |
變量環(huán)境 | 指定一個詞法環(huán)境對象,其環(huán)境數(shù)據(jù)用于保存由該執(zhí)行環(huán)境內(nèi)的代碼通過 變量表達式 和 函數(shù)表達式 創(chuàng)建的綁定。 |
This綁定 | 指定該執(zhí)行環(huán)境內(nèi)的 ECMA 腳本代碼中 this 關(guān)鍵字所關(guān)聯(lián)的值。 |
其中執(zhí)行環(huán)境的詞法環(huán)境和變量環(huán)境組件始終為 詞法環(huán)境 對象。當(dāng)創(chuàng)建一個執(zhí)行環(huán)境時,其詞法環(huán)境組件和變量環(huán)境組件最初是同一個值。在該執(zhí)行環(huán)境相關(guān)聯(lián)的代碼的執(zhí)行過程中,變量環(huán)境組件永遠不變,而詞法環(huán)境組件有可能改變。
在本標準中,通常情況下,只有正在運行的執(zhí)行環(huán)境(執(zhí)行環(huán)境棧里的最頂層對象)會被算法直接修改。因此當(dāng)遇到“詞法環(huán)境”,“變量環(huán)境”和“This 綁定”這三個術(shù)語時,指的是正在運行的執(zhí)行環(huán)境的對應(yīng)組件。
執(zhí)行環(huán)境是一個純粹的標準機制,并不代表任何 ECMA 腳本實現(xiàn)的工件。在 ECMA 腳本程序中是不可能訪問到執(zhí)行環(huán)境的。
標識符解析是指使用正在運行的執(zhí)行環(huán)境中的詞法環(huán)境,通過一個 標識符 獲得其對應(yīng)的綁定的過程。在 ECMA 腳本代碼執(zhí)行過程中,PrimaryExpression : Identifier 這一語法產(chǎn)生式將按以下算法進行解釋執(zhí)行:
解釋執(zhí)行一個標識符得到的結(jié)果必定是 引用 類型的對象,且其引用名屬性的值與 Identifier 字符串相等。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: