为了账号安全,请及时绑定邮箱和手机立即绑定

关于执行上下文的数据结构的疑问

关于执行上下文的数据结构的疑问

吃鸡游戏 2019-03-13 14:11:48
以前学习过执行上下文内部结构的一些知识,大概的知道执行上下文内部有变量对象VO/AO、this、作用域链Scope等属性。今天看了篇关于执行上下文的文章,文中给出了全局执行上下文和函数执行上下文的数据结构。  Global Execution Context = {         global object,         this: global object,         outer environment: null,         enviroment: {             // all the identifiers             variable,             function expression,             function declaration,         },     }   Execution Context = {         this: some value,         outer environment: outer lexcial environment,         enviroment: {             // all the identifiers             parameter,             arguments,             variable,             function expression,             function declaration,         },     }我的疑问比较多:eviroment对应了以前学的知识中的变量对象?外部指针对应了Scope?按以前学的知识,只有函数的形参、函数声明、变量声明可以进入变量对象,为什么在function Execution Context中,函数表达式 function expression也进入了enviroment,说明了 enviroment不是变量对象?3.在Global Execution Context中有global object和enviroment,按道理,全局对象就是全局变量对象,相同的东西没必要保存两份,这也证明了 enviroment 不是变量对象吧。所以,对原文的正确性,有些存疑。
查看完整描述

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

我个人觉得 按作者的意思:
enviroment 就是 变量对象
outer environment 就是 作用域链

至于
lobal Execution Context 中的 global object
enviroment 中的 function expression
我也没懂它写的什么, 毕竟也是每个人自己的总结, 也不是权威结论, 自己 get 到点就行了


查看完整回答
反对 回复 2019-04-03
  • 1 回答
  • 0 关注
  • 420 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信