作用域链

JavaScript中所有的变量都是存在于某一个作用域中的

除了全局作用域, 每一个作用域都是存在于某个作用域中的

在试图访问一个变量时JS引擎会从当前作用域开始向上查找直到Global全局作用域停止

例如

var a;           //全局作用域

function b(){    

         var c;        //c位于b函数的作用域   

         function d()    {       

                 var e;   //e位于d函数的作用域       

                 alert(a)  

           }

}

当alert(a)时, JS引擎沿着d的作用域, a的作用域, 全局作用域的顺序进行查找.

这三个作用域组成的有序集合就成为作用域链


函数在执行的过程中,先从自己内部找变量

如果找不到,再从创建当前函数所在的作用域去找, 以此往上

注意找的是变量的当前的状态

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