当声明一个javascript全局变量时,实际上是定义了全局对象的一个属性。
当使用var声明一个变量时,创建的这个属性是不可配置的,也就是说这个变量无法通过delete运算符来删除。可能你已经注意到,如果你没有使用严格模式并给一个未声明的变量赋值的话,javascript会自动创建一个全局变量。以这种方式创建的变量是全局对象的正常可本会属性,并可以删除它们:
1 var a =1; 2 b =2; 3 this.b2 = 3; 4 delete a; //不可删除 5 delete b; //可删除 6 delete this.b2 //可删除
javascript全局变量是全局对象的属性,这是在ECMAScript 5规范称为“声明上下文对象。javascript可以允许用this关键字来引用全局对象,却没有方法可以引用局部变量中存放的对象。这种存放局部变量的对象的特有性质,是一种对我们不可见的内部实现。然而,这些局部变量对象存在的观念是非常重要的。
原文:http://www.cnblogs.com/Ziksang/p/5203780.html