当代码在一个环境中执行的时候会创建变量对象的一个作用域链(scope chain),作用域链的作用是保证执行环境有权访问相应的变量,作用域链的前端始终都是当前执行的代码所在环境的变量对象,最后端的始终都是全局环境的变量对象(global)
这么讲有点抽象,不过我们简单的画个图片应该就好理解





作用域链的解析是一级一级往上搜索的过程,如果最终在全局里面找不到对应的变量,一般会报错(在新的Es7语法中软化了这种问题)
当代码在一个环境中执行的时候会创建变量对象的一个作用域链(scope chain),作用域链的作用是保证执行环境有权访问相应的变量,作用域链的前端始终都是当前执行的代码所在环境的变量对象,最后端的始终都是全局环境的变量对象(global)
这么讲有点抽象,不过我们简单的画个图片应该就好理解




