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