深入理解JavaScript执行上下文
在 《深入理解JavaScript执行上下文栈》 这篇文章中,我们已经介绍了执行上下文相关概念: 执行上下文 分类:全局上下文、函数上下文 全局上下文:执行全局代码时,创建全局上下文。 函数上下文:执行函数时,创建函数上下文。 主要属性: 变量对象(Variable object,VO) 作用域链(Scope chain) this 这一篇我们将介绍执行上下文的具体处理过程。 示例 我们来看一个经常在面试中被问到的问题: 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()() 我们发现这两段代码最后输出的都是’local scope’,那么这两段代码有什么不同呢? 具体分析 我们结合前面所学的执行上下文栈、变量对象、作用域链相关知识来分析一下这两段代码的执行过程。 首先我们先来看第一段代码: var