3. 变量对象

执行上下文的生命周期:

  1. 创建阶段。(创建变量对象,建立作用域链,确定this的指向)
  2. 代码执行阶段。(变量赋值,函数引用,执行其他代码)

变量对象的创建经历的几个过程:

  1. 建立参数对象, 检查当前上下文中的参数,建立该对象下的属性与属性值。
  1. 检查当前上下文的函数声明, 在变量对象中以函数名建立一个属性,属性值指向该函数所在内存地址的引用。如果函数名的属性已经存在,那么该属性将会被新的引用所覆盖。

3.检查当前上下文中的变量声明,为每个找到的变量声明在变量对象中以变量名建立一个属性值为undefined的属性。如果该变量名的属性已经存在,为了防止同名的函数被修改为undefined,则会直接跳过,原属性值不会被修改。

变量对象和活动对象都是同一个对象,只是处于执行上下文的不同生命周期。
未进入执行阶段之前,变量对象中的属性都不能访问,
但是进入执行阶段之后,变量对象转变为了活动对象,里面的属性都能被访问了,然后开始进行执行阶段的操作。

全局上下文的一个特殊的地方是其变量对象就是window对象。
全局上下文的生命周期与程序的生命周期一致,只要程序运行不结束,全局上下文就会一直存在。
其他所有的上下文环境,都能直接访问全局上下文的属性。

原文戳这里

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,865评论 19 139
  • 来源:仗剑走天涯! 关于javascript的作用域的一些总结,主要参考以上文章,加上自己的整理的理解。 近日对j...
    Michael_林阅读 4,509评论 0 1
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 12,386评论 0 27
  • 诗人说女儿是妈妈的小棉袄,是爸爸的小情人,而我却觉得女儿是一颗星星。从她出生那一刻,父母的天空就被点亮了。他们风里...
    十点拾课阅读 2,507评论 0 0
  • 真的是莫名其妙地蓝瘦香菇。 一大早起来就莫名其妙地蓝瘦香菇到现在。 感觉自己真的是厌世。 喵的我明明是中二病,却像...
    likeuloveu阅读 1,535评论 2 1

友情链接更多精彩内容