采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,既然自由变量是按定义时的作用域向上查找,那作用域链是函数定义时生成的,还是调用时生成的?
作用域链不需要生成,函数定义好之后,作用域链就存在了,函数执行时即可根据链来寻找。
好的,谢谢老师。但是作用域链最前端总是指向当前执行环境上下文,也就是说当函数调用时,会将函数此时的活动对象推到作用域链的最前端是嘛。我自己理解是作用域链的创建有两个部分:函数创建的时候,保存的是根据词法所生成的作用域链,函数执行的时候,会复制这个作用域链,作为自己作用域链的初始化,然后根据环境生成变量对象,然后将这个变量对象,添加到这个复制的作用域链,保证当前作用域链的最前端指向的是当前执行环境的变量对象,这才完整的构建了自己的作用域链
我自己理解是作用域链的创建有两个部分:函数创建的时候,保存的是根据词法所生成的作用域链,函数执行的时候,会复制这个作用域链,作为自己作用域链的初始化,然后根据环境生成变量对象,然后将这个变量对象,添加到这个复制的作用域链,保证当前作用域链的最前端指向的是当前执行环境的变量对象,这才完整的构建了自己的作用域链。
登录后可查看更多问答,登录/注册
双越老师带你体系化掌握大厂前端面试知识与流程
856 8
116 7
243 6
431 5
465 5