执行上下文,作用域,作用域链他们是什么关系
# 具体遇到的问题
看了闭包的有关资料,执行上下文是一个对象,也叫代码的执行环境,它在函数执行时创建;作用域是可访问的变量的集合,他是执行上下文的一个内部属性(scope);作用域链在函数定义是产生,它是什么?他们三者的关系是怎样的
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
在这里输入代码,可通过选择【代码语言】突出显示
39
收起
正在回答
2回答
好帮手慕久久
2020-10-28 11:18:50
执行上下文是代码的执行环境,该环境包含全局作用域与局部作用域,所以作用域是执行上下文的组成部分,是执行上下文的内部属性;
作用域是变量起作用的区域,比如下图中的变量a,它处于函数f内,它只能在函数f内使用,外部访问不到它,所以调用f形成的作用域,就是a所处的作用域:
作用域相互嵌套就形成了作用域链,它可以用来查询变量,例如下面的例子:
调用函数c时,函数c内部打印变量a。由于函数c中没有声明变量a,因此会往它上一层作用域函数b中查找变量a。由于函数b中也没有声明变量a,因此会再往上一层作用域函数a中查找,函数a中声明了变量a,所以最终打印1。也就是作用域层层嵌套,内部作用域查找变量,会一层一层往上级作用域中查找,形成了作用域链。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星