作用域链

2019-08-01  本文已影响0人  苦役亚克

作用域就是一套规则,用于确定在何处以及如何查找变量(标识符)的规则

例:

示例1.png

在foo函数执行的时候,输出一个a变量,这个a变量就是函数第一行定义a变量的代码 var a = 'ccccc'.

再一例:

示例2.png

同样,再输出b的时候发现自己函数内部没有找到变量b,那么就在外层的全局中查找,找到了变量b就停止查找并输出。

两个例子都有查找变量,不同的是第一段代码是在函数中找到变量,第二段代码是在全局中找到b变量。也就是说第一段代码是在函数作用域中找到a变量,第二段代码是在全局作用域中找到b变量。

通俗的说 ** 作用域就是查找变量的地方**

作用域链

如上示例2,在查找b变量的时候,先在函数作用域中查找,没有找到,再去全局作用域中查找,有一个往外层查找的过程,就好像顺着一条链条从下往上查找变量,这条链条,就称之为作用域链

作用域嵌套

函数作用域肯定实在全局作用域里面的,而函数作用域中又可以继续嵌套函数作用域,如下图:

示例3.png

代码则是:

示例4.png

作者:沉沉___

链接:https://www.jianshu.com/p/05ca23477b5c

上一篇下一篇

猜你喜欢

热点阅读