js中的作用域链

执行环境

执行环境是JavaScript中最为重要的概念之一。执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为。每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量核函数保存在这个对象中。虽然编写的代码无法访问这个对象,凡是解析器会在处理数据时在后台用到他。
全局执行环境是最外围的一个执行环境。在web浏览器中,全局执行环境呗认为是window对象,因此所有的全局变量和函数是作为window对象的属性和方法创建的。某个执行环境中所有的代码执行完毕后,该环境被销毁,保存在其中的所有变量和函数定义也随之销毁。

作用域链

当代码在一个环境执行时,会创建变量对象的一个作用域链,保证对执行环境有权访问的所有变量和函数的有序访问。
函数在执行的过程中,先从自己内部找变量
如果找不到,再从创建当前函数所在的作用域去找, 以此往上

你可能感兴趣的:(js中的作用域链)