js 作为属性的变量

当声明一个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关键字来引用全局对象,却没有方法可以引用局部变量中存放的对象。这种存放局部变量的对象的特有性质,是一种对我们不可见的内部实现。然而,这些局部变量对象存在的观念是非常重要的。

原文地址:https://www.cnblogs.com/Ziksang/p/5203780.html