执行上下文
amandakelake opened this issue · 1 comments
amandakelake commented
原文
先看下两段代码的不同,再来分析执行上下文的不同
var scope = "global scope";
function checkscope(){
var scope = "local scope";
function f(){
return scope;
}
return f();
}
checkscope();
var scope = "global scope";
function checkscope(){
var scope = "local scope";
function f(){
return scope;
}
return f;
}
checkscope()();
第一段代码的执行上下文栈
ECStack.push(globalContext);//先推入全局上下文
ECStack.push(checkscope);//checkscope上下文
ECStack.push(f);//f上下文
ECStack.pop();
ECStack.pop();
ECStack.pop();
第二段的
ECStack.push(globalContext);//先推入全局上下文
ECStack.push(checkscope);//checkscope上下文
ECStack.pop();
ECStack.push(f);//f上下文
ECStack.pop();
ECStack.pop();
magnum-zx commented
是否可以理解为:函数的执行上下文是在被调用的时候创建的