在JavaScript高级程序设计中,执行环境的定义是:定义了变量或函数有权访问的其他数据,决定了它们各自的行为。
每个执行环境都有一个与之关联的变量对象,环境中定义了所有变量和函数都保存在这个对象中。
其实执行环境就是JavaScript中的作用域
每个函数都有自己的执行环境。当执行流进入一个函数时,函数的环境就会被推入一个环境栈中。而且在函数执行完之后,栈将环境推出,把控制权返回之前的执行环境。
内部环境可以通过作用域链访问所有的外部环境,但外部环境不能访问内部环境中任何变量和函数。这些环境之间的联系是线性的、有序的。
每个环境可以向上搜索作用域链,以查询变量和函数名;但任何环境都不能通过向下搜索作用域链而进入另一个执行环境。