圖解javascript作用域鏈
先來(lái)一段簡(jiǎn)單的javascript代碼:
window.onload=function(){ function sub(a,b){ return a-b; } var result=sub(10,5); }
這段代碼中的執(zhí)行環(huán)境已經(jīng)數(shù)清楚了,可是執(zhí)行環(huán)境只是代碼在預(yù)編譯過(guò)程中javascript引擎所做的事情,當(dāng)代碼在window onload事件被觸發(fā),且sub函數(shù)被執(zhí)行的時(shí)候會(huì)發(fā)生什么事情呢?
1.javascript引擎會(huì)在頁(yè)面加載腳本被執(zhí)行時(shí)為每個(gè)函數(shù)創(chuàng)建一個(gè)作用域(執(zhí)行上下文)及作用域鏈。
2.javascript引擎在產(chǎn)生這些作用域后,會(huì)創(chuàng)建一個(gè)堆棧。
3.將onload對(duì)應(yīng)的匿名函數(shù)壓棧
4.將sub函數(shù)壓棧
5.sub函數(shù)執(zhí)行完畢出棧
6.匿名函數(shù)出棧
整體圖解如下:
如有錯(cuò)誤之處,歡迎批評(píng)指正。謝謝
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
window.location.href的用法(動(dòng)態(tài)輸出跳轉(zhuǎn))
無(wú)論在靜態(tài)頁(yè)面還是動(dòng)態(tài)輸出頁(yè)面中window.location.href都是不錯(cuò)的用了跳轉(zhuǎn)的實(shí)現(xiàn)方案2014-08-08JavaScript顯式數(shù)據(jù)類(lèi)型轉(zhuǎn)換詳解
這篇文章主要介紹了JavaScript顯式數(shù)據(jù)類(lèi)型轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Javascript中的轉(zhuǎn)義用法實(shí)例代碼
Javascript 中的轉(zhuǎn)義用法一例,需要的朋友可以參考下。2010-11-11JavaScript中setFullYear()方法的使用詳解
這篇文章主要介紹了JavaScript中setFullYear()方法的使用詳解,是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06