js对象成员的删除特性 (delete)

      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”

posted @ 2013-05-31 16:12  程序猿进化之路  阅读(1123)  评论(0编辑  收藏  举报