图解作用域、作用域链
作用域链形成过程:
总结:
函数在创建时会取得当前作用域的执行期上下文,当函数执行时会进行预编译,产生自己的AO对象,并与之前的执行期上下文构成链式结构,函数AO对象产生的作用域在链条顶端;当查找变量时会从链条顶端开始查找,如果在自身作用域找不到就继续沿着链条找,直到window为止。当函数执行完后一般会销毁作用域,如果下次在调用函数,将会按照同样规则产生独一无二的作用域链。作用域与函数定义的环境有关,而与函数在哪执行无关。
作用域链形成过程:
总结:
函数在创建时会取得当前作用域的执行期上下文,当函数执行时会进行预编译,产生自己的AO对象,并与之前的执行期上下文构成链式结构,函数AO对象产生的作用域在链条顶端;当查找变量时会从链条顶端开始查找,如果在自身作用域找不到就继续沿着链条找,直到window为止。当函数执行完后一般会销毁作用域,如果下次在调用函数,将会按照同样规则产生独一无二的作用域链。作用域与函数定义的环境有关,而与函数在哪执行无关。