函數呼叫與執行堆
函數呼叫 (Functoin Invocation) 與執行堆 (Execution Stack) 介紹
以下為一段最基礎的函示呼叫程式碼
1 | function b() {} |
首先,在創造階段的時,函式 a 和 b 會被創造並記錄在記憶體中,接著到了執行階段程式程式碼會由上而下依序執行,a 被呼叫,再藉由 a 來呼叫 b
執行堆 (Execution Stack)
當函式被呼叫時,會創造一個獨立的執行環境放到執行堆的最上層,所以當 a 被呼叫時,就會基於全域環境放在其上層,如下圖所示
而當 a 被執行後呼叫內層的 b 又會再創造一個新的執行環境
直到 b 執行完畢離開執行堆後,繼續執行 a 尚未執行的任務,最後直到 a 也執行完畢離開執行堆,繼續由上而下依序執行全域環境的程式碼