delete删除属性
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 */