圖解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)文章
一起來學(xué)習(xí)一下JavaScript的事件流
這篇文章主要為大家詳細(xì)介紹了JavaScript的事件流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01
JavaScript編程中window的location與history對(duì)象詳解
這篇文章主要介紹了JavaScript編程中window的location與history對(duì)象,是JavaScript入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10
總結(jié)JavaScript在IE9之前版本中內(nèi)存泄露問題
本篇文章給大家總結(jié)了JavaScript在IE9之前版本中內(nèi)存泄露問題,對(duì)此有興趣的朋友可以學(xué)習(xí)下。2018-04-04
javascript中FOREACH數(shù)組方法使用示例
本文給大家介紹的是Array.prototype.forEach()的使用方法示例,希望對(duì)大家學(xué)習(xí)javascript能夠有所幫助。2016-03-03
了解javascript中l(wèi)et和var及const關(guān)鍵字的區(qū)別
這篇文章主要介紹了javascript中l(wèi)et和var以及const關(guān)鍵字的區(qū)別,下面我們來一起學(xué)習(xí)一下吧2019-05-05

