日期:2014-05-16  浏览次数:20476 次

怎么感觉delete this.newMethod;加不加无所谓?
function classA(){
this.name="Michael"
this.say=function(){alert(this.name)}
}

function classZ(){
this.sayBye=function (){
alert(886)
}
}

function classB(){
this.newMethod=classA;
this.newMethod();

// delete this.newMethod;

this.newMethod=classZ;
this.newMethod();
//delete this.newMethod;
this.name='jackson';
this.sayName=function (){alert(this.name)}
}


b=new classB
a=new classA
z=new classZ
b.sayName();
a.say();

不加delete this.newMethod超类的属性也没被覆盖啊?

------解决方案--------------------
探讨
B类继承了A和Z类啊
我是参考这个书上写的啊
http://hi.baidu.com/zgh555zgh/blog/item/c9e66fc74d54f41d9d163da8.html

------解决方案--------------------
探讨
书上讲错了,还是我理解错了?郁闷啊

function classA(){
this.name="Michael"
this.say=function(){alert(this.name)}
}
超类属性就是name啊

------解决方案--------------------
仅仅是冒充而已。
并不是真的。
--------
------解决方案--------------------
探讨
lz 在胡言乱语什么?!A Z B 之间根本没有任何继承关系可言!

仔细去看看如何在 JS 中实现继承吧!

JScript codedelete 运算符
从对象中删除一个属性,或从数组中删除一个元素。delete expression

expression 参数是一个有效的 JScript 表达式,通常是一个属性名或数组元素。

说明
如果 expression 的结果是一个对象,且在 expression 中指定的属性存在,而该对象又不允许它被删除,则返回false。

在所有其他情况下,返回true。