4.变量对象
执行上下文三个重要属性之一,变量对象.
变量对象
变量对象: 存储了在上下文中定义的变量和函数声明。
函数上下文中的活动对象
在函数上下文中.一般用活动对象来表示变量对象.
活动对象和变量对象其实是一个东西,只是变量对象是规范上的或者说是引擎实现上的.
执行上下文生命周期: 创建阶段,执行阶段,执行完毕.
创建阶段产生变量对象,执行阶段变成活动对象.
活动对象真实存在,变量对象用于指代创建阶段内一个函数内定义的所有参数列表、内部变量和内部函数.
这个创建变量对象的过程实际就是函数内数据(函数参数、内部变量、内部函数)初始化的过程。
总结
变量对象:
- 在函数被调用,但是函数尚未执行的时刻被创建的.
- 定义着执行上下文下的所有参数、变量和函数。
活动对象: 在进入函数上下文时被创建的,它通过函数的arguments属性初始化.arguments属性值是Arguments对象。
全局上下文
全局上下文 就是 全局对象 具有以下特点:
console.log(this); // 1.可以通过this应用,在客户端js中,全局对象就是Window对象.
console.log(this instanceof Object);// 2.是由Object构造函数实例化的一个对象.
console.log(Math.random());// 3.预定义了一大堆函数和属性.
var a = 1;console.log(this.a);// 4.作为全局变量的宿主.
this.window.b = 2;console.log(this.b);// 5.客户端js中,全局对象有window属性指向自身。