作用域(链)

作用域

作用域可以理解为当前上下文中声明的变量和函数的作用范围。 它规定了如何查找变量,也就是当前执行代码对变量的访问权限。

执行上下文:可以简单理解为一个对象。它有三种类型,全局执行上下文、函数执行上下文、eval()执行上下文。


分类:块级作用域、函数作用域。



作用链

一般情况下,变量取值到 创建 这个变量 的函数的作用域中取值。但是如果在当前作用域中没有查到值,就会向上级作用域去查,直到查到全局作用域,这么一个查找过程形成的链条就叫做作用域链。

作用:保证当前执行环境里,有权访问的变量和函数是有序的(作用域链的变量只能向上访问变量,访问到window对象时被终止)

作用域链和原型继承查找的区别: 如果去查找一个普通对象的属性,但是在当前对象和其原型中都找不到时,会返回undefined;但查找的属性在作用域链中不存在的话就会抛出ReferenceError


评论(0)

评论