美文网首页
3. 变量对象

3. 变量对象

作者: Stago | 来源:发表于2017-03-24 23:21 被阅读0次

执行上下文的生命周期:

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

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

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

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

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

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

原文戳这里

相关文章

  • 3. 变量对象

    执行上下文的生命周期: 创建阶段。(创建变量对象,建立作用域链,确定this的指向)代码执行阶段。(变量赋值,函数...

  • js中判断变量是对象/空对象的方法

    1.判断变量是对象 2.判断变量是空对象 3.判断变量是纯粹的对象

  • C#面向对象基础

    Static:调用本类对象的时候可以直接调用(不用创建对象,模拟全局变量) This:表示当前类的对象 3.属性(...

  • 1、javascript变量详解

    js变量类型:1.字符串变量 2.整型 3.浮点 4.布尔 5.数组 6.对象 7.json对象 8.NaN 类型...

  • 单例模式下使用代理,野指针的判断

    1.声明成员变量 2.添加调度对象 3.移出调度对象 4.判断调度对象是否已经存在

  • iOS开发代码规范整理

    iOS代码规范 Apple官方文档:文档 变量 1.类,协议使用大驼峰 2.对象及局部变量使用小驼峰 3.变量,属...

  • postman | 入门脚本语法

    环境变量: 1、设置某个环境变量 2.获取某个环境变量 如果获取的值是json格式 3.将嵌套对象设置为环境变量 ...

  • GcRoots

    1.虚拟机栈中局部变量(也叫局部变量表)中引用的对象2.方法区中类的静态变量、常量引用的对象3.本地方法栈中 JN...

  • Block:截获变量与__block

    截获类型 1.局部变量 (基本数据类型/对象类型) 2.静态局部变量 3.全局变量 4.静态全局变量 对于基本数据...

  • 3. 变量

    声明变量 1. 指定变量和类型 , 不赋值时 会给定默认值 2. 不声明类型 , 根据值来推断变量类型 3. 省略...

网友评论

      本文标题:3. 变量对象

      本文链接:https://www.haomeiwen.com/subject/eqsqottx.html