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