7 执行上下文 - cw84973570/Learning-notes GitHub Wiki
https://github.com/mqyqingfeng/Blog/issues/8
var scope = "global scope";
function checkscope(){
var scope = "local scope";
function f(){
return scope;
}
return f();
}
checkscope();
执行全局代码,创建全局执行上下文,将其压入到执行上下文栈。
全局上下文初始化。
同时创建Checkscope函数,创建Checkscope.[scope](/cw84973570/Learning-notes/wiki/scope)
属性,将其父变量对象保存到该属性,也就是父级作用域中存在的。
执行checkscope函数,创建checkscope执行上下文,将其压入到执行上下文栈,
初始化checkscope执行上下文,创建活动对象、作用域和this。
将[scope](/cw84973570/Learning-notes/wiki/scope)
设置为作用域的值,并将变量对象压入到作用域前端。
执行代码,创建f函数,创建f.[scope](/cw84973570/Learning-notes/wiki/scope)
属性,将其父变量对象保存到该属性。
执行f函数,创建f执行上下文,将其压入到执行上下文栈。
初始化f执行上下文栈,创建变量对象、作用域和this。
[scope](/cw84973570/Learning-notes/wiki/scope)
设置为作用域的值,并将活动对象压入到作用域前端。
执行完毕函数f将其执行上下文从执行上下文栈中弹出。
执行完毕函数checkscope将其执行上下文从执行上下文栈中弹出。