1 /*
2 删除实例属性
3 */
4 function MyObject() {
5 this.name = "我是实例的name";
6 }
7 var obj = new MyObject();
8 alert(obj.name); //我是实例的name
9 delete obj.name;
10 alert(obj.name); //undefined
11 /*
12 实例中的name被删除掉了.
13 删除原型属性
14 */
15 MyObject.prototype.age = 23;
16 alert(obj.age);//23
17 delete obj.age;
18 alert(obj.age); //23
19 /*
20 此时你会发现,delete无法删除掉原型中的属性,那么这个问题怎么解决呢?
21 */
22 delete obj.constructor.prototype.age;//或者 delete MyObject.prototype.age
23 alert(obj.age); //undefind
24 /*
25 此时原型中的属性age才被真正的删除掉了.
26 注意,因为constructor的属性是可以改变的,所以在使用这个属性时候,要确保constructor指向你说需要的构造器函数.
27 delete在删除宿主属性时,会发生一些不和谐的因素.
28 */
29 window.app = "hello,大家好";
30 delete window.app;
31 /*
32 这个delete在火狐等浏览器中是可以执行的.
33 但是在IE下就会报错了.对象不支持此操作
34 */