国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > WEB開(kāi)發(fā) > 正文

深入理解javascript原型和閉包(11)——執(zhí)行上下文棧

2024-04-27 15:17:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
原文地址:http://www.cnblogs.com/wangfupeng1988/p/3989357.html

繼續(xù)上文的內(nèi)容。

執(zhí)行全局代碼時(shí),會(huì)產(chǎn)生一個(gè)執(zhí)行上下文環(huán)境,每次調(diào)用函數(shù)都又會(huì)產(chǎn)生執(zhí)行上下文環(huán)境。當(dāng)函數(shù)調(diào)用完成時(shí),這個(gè)上下文環(huán)境以及其中的數(shù)據(jù)都會(huì)被消除,再重新回到全局上下文環(huán)境。處于活動(dòng)狀態(tài)的執(zhí)行上下文環(huán)境只有一個(gè)。

其實(shí)這是一個(gè)壓棧出棧的過(guò)程——執(zhí)行上下文棧。如下圖:

 

可根據(jù)以下代碼來(lái)詳細(xì)介紹上下文棧的壓棧、出棧過(guò)程。

如上代碼。

在執(zhí)行代碼之前,首先將創(chuàng)建全局上下文環(huán)境。

然后是代碼執(zhí)行。代碼執(zhí)行到第12行之前,上下文環(huán)境中的變量都在執(zhí)行過(guò)程中被賦值。

執(zhí)行到第13行,調(diào)用bar函數(shù)。

跳轉(zhuǎn)到bar函數(shù)內(nèi)部,執(zhí)行函數(shù)體語(yǔ)句之前,會(huì)創(chuàng)建一個(gè)新的執(zhí)行上下文環(huán)境。

并將這個(gè)執(zhí)行上下文環(huán)境壓棧,設(shè)置為活動(dòng)狀態(tài)。

執(zhí)行到第5行,又調(diào)用了fn函數(shù)。進(jìn)入fn函數(shù),在執(zhí)行函數(shù)體語(yǔ)句之前,會(huì)創(chuàng)建fn函數(shù)的執(zhí)行上下文環(huán)境,并壓棧,設(shè)置為活動(dòng)狀態(tài)。

 

待第5行執(zhí)行完畢,即fn函數(shù)執(zhí)行完畢后,此次調(diào)用fn所生成的上下文環(huán)境出棧,并且被銷(xiāo)毀(已經(jīng)用完了,就要及時(shí)銷(xiāo)毀,釋放內(nèi)存)。

同理,待第13行執(zhí)行完畢,即bar函數(shù)執(zhí)行完畢后,調(diào)用bar函數(shù)所生成的上下文環(huán)境出棧,并且被銷(xiāo)毀(已經(jīng)用完了,就要及時(shí)銷(xiāo)毀,釋放內(nèi)存)。

 

好了,我很耐心的給大家介紹了一段簡(jiǎn)短代碼的執(zhí)行上下文環(huán)境的變化過(guò)程,一個(gè)完整的閉環(huán)。其中上下文環(huán)境的變量賦值過(guò)程我省略了許多,因?yàn)槟切┎⒉浑y,一看就知道。

 

講到這里,我不得不很遺憾的跟大家說(shuō):其實(shí)以上我們所演示的是一種比較理想的情況。有一種情況,而且是很常用的一種情況,無(wú)法做到這樣干凈利落的說(shuō)銷(xiāo)毀就銷(xiāo)毀。這種情況就是偉大的——閉包。

要說(shuō)閉包,咱們還得先從自由變量和作用域說(shuō)起。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 紫阳县| 安顺市| 越西县| 晋宁县| 肥城市| 木里| 保德县| 新营市| 资源县| 吉安县| 阳曲县| 霍山县| 吉隆县| 阿拉善右旗| 巴塘县| 黄山市| 祥云县| 弋阳县| 广元市| 南部县| 五河县| 万全县| 隆尧县| 县级市| 治多县| 佛冈县| 正阳县| 铅山县| 临沧市| 镶黄旗| 紫金县| 汾西县| 荥经县| 汉阴县| 江安县| 荆门市| 天祝| 永昌县| 衡阳县| 呼图壁县| 茶陵县|