执行上下文:一段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