JavaScript中所有的变量都是存在于某一个作用域中的
除了全局作用域, 每一个作用域都是存在于某个作用域中的
在试图访问一个变量时JS引擎会从当前作用域开始向上查找直到Global全局作用域停止
例如
var a; //全局作用域
function b(){
var c; //c位于b函数的作用域
function d() {
var e; //e位于d函数的作用域
alert(a)
}
}
当alert(a)时, JS引擎沿着d的作用域, a的作用域, 全局作用域的顺序进行查找.
这三个作用域组成的有序集合就成为作用域链
函数在执行的过程中,先从自己内部找变量
如果找不到,再从创建当前函数所在的作用域去找, 以此往上
注意找的是变量的当前的状态
网友评论