delete不能删除用var声明的变量,直接继承自原型的成员。其中delete不能删除继承自圆形的成员,但如果修改了这个成员的值你仍然能够删除它-这将是她恢复到原型的值
function myobj(){ this.name="instance's name"; } myobj.prototype.name="myname"; var a=new myobj(); alert(a.name); delete(a.name); alert(a.name);
第一个alert会显示“instance's name” 而第二个alert会显示“myname”可见delete不能够通过实例来删除原型的及父代类原型的成员
但可以通过下面这条语句来删除name属性
delete a.constructor.prototype.name; alert(a.name);
alert显示内容为“undefined”