先來一段簡單的javascript代碼:
window.onload=function(){function sub(a,b){return a-b;}var result=sub(10,5);}
這段代碼中的執行環境已經數清楚了,可是執行環境只是代碼在預編譯過程中javascript引擎所做的事情,當代碼在window onload事件被觸發,且sub函數被執行的時候會發生什么事情呢?
1.javascript引擎會在頁面加載腳本被執行時為每個函數創建一個作用域(執行上下文)及作用域鏈。
2.javascript引擎在產生這些作用域后,會創建一個堆棧。
3.將onload對應的匿名函數壓棧
4.將sub函數壓棧
5.sub函數執行完畢出棧
6.匿名函數出棧
整體圖解如下:
如有錯誤之處,歡迎批評指正。謝謝
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答