其实很简单,就是JS引擎为了保证函数的有序执行搞的一个东西。
首先了解变量对象(variable object,vo)和活动对象(activetion object, ao)的概念:
1. vo是静态的,是JS引擎在分析代码是生成的,包含函数的变量声明、参数列表、函数声明。
2. ao是动态的,是执行是生成的,包含函数的局部变量、命名参数、this指向等等,还有__parent__指向函数的上级
作用域链的最上级总是window的vo,然后下级就是一层层的ao,函数执行的时候就一层层往上找。大致如此。