圖解javascript作用域鏈
先來一段簡(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ù)編譯過程中javascript引擎所做的事情,當(dāng)代碼在window onload事件被觸發(fā),且sub函數(shù)被執(zhí)行的時(shí)候會(huì)發(fā)生什么事情呢?
1.javascript引擎會(huì)在頁面加載腳本被執(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))
無論在靜態(tài)頁面還是動(dòng)態(tài)輸出頁面中window.location.href都是不錯(cuò)的用了跳轉(zhuǎn)的實(shí)現(xiàn)方案2014-08-08
JavaScript顯式數(shù)據(jù)類型轉(zhuǎn)換詳解
這篇文章主要介紹了JavaScript顯式數(shù)據(jù)類型轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
Javascript中的轉(zhuǎn)義用法實(shí)例代碼
Javascript 中的轉(zhuǎn)義用法一例,需要的朋友可以參考下。2010-11-11
JavaScript中setFullYear()方法的使用詳解
這篇文章主要介紹了JavaScript中setFullYear()方法的使用詳解,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06

