JavsScript做用域链

什么是做用域链?javascript

  首先要理解什么是做用域,任何语言在设计的时候都会有设定变量的做用,好比类C语言中都是使用{} 来肯定变量的做用域。可是在javascript当中,做用域是当前对象的执行环境(当前代码执行的上下文对象),最外层是全局执行环境也就是window。在类C语言中能够常常看到相似这种块级做用域 {java

              {函数

                {}spa

                {}设计

              }对象

             }  ,一层包着一层,在javascript当中其实也是这样的,只不过javascript不用{}块级做用域来限制变量的做用范围,而是用做用域链。ip

   那么什么是做用域链呢? 做用域链就是保证对执行环境有权访问的全部变量和函数的有序访问。通俗一点的说就是将各类层级包含关系的“块级做用域” 等价于一条链,经过这条链咱们能够找到当前执行环境的变量范围。好比咱们在类C语言中的{{}{{}}}{} 块级做用域,咱们想要确认在某个块级做用域中可以访问的变量,只须要看层级包含关系就能够了,可是在javascript中没有这种“块级做用域” 必须在脑海中勾勒出当前执行环境的做用域链,才能肯定当前执行环境的变量。作用域

相关文章
相关标签/搜索