js 基礎概念

一 執行上下文 和 執行上下文棧

執行上下文:一段javascript代碼執行前的準備工做
問題一:js引擎遇到怎樣一段代碼纔會作「準備工做呢」?
可執行代碼類型:全局代碼、函數代碼、eval代碼
執行上下文的三個重要概念 : 變量對象,做用域鏈,thisjavascript

問題二:準備工做是什麼?
準備工做就是執行上下文,函數聲明提高、變量聲明提高java

執行上下文棧閉包

模擬執行上下文棧 ,ECStack = [];
只有當整個應用程序結束時,ECS纔會被狀況,因此ECStack底部永遠有個globalContext, ECStask = [globalContex];函數

function f1 (){
    console.log('fun1');
}
function f2 (){
    f1 ();
}
f2();
//僞代碼
ECStask.push(f2Context);
ECStask.push(f1Context);
ECStask.pop(f1Context);
ECStask.pop(f2Context);

問題三:閉包的上下文執行棧是這麼存儲的this

相關文章
相關標籤/搜索