为什么在A指定prototype后,其先前创建的实例没有得到prototype中的方法?
而奇怪的是,
var pc= new C();也是在定义prototype之前创建,但却可以获得prototype中的方法。
请指教,谢谢。
而另一方面,
[code="javascript"]
function A() {this.walk= function() {alert('I can walk');}}
function B() {this.swing= function() {alert('I can swing');}}
function C() {this.fly= function() {alert('I can fly');}}
var a= new A();
alert(a.fly == undefined);
var cp= new C();
B.prototype= cp;
A.prototype= new B();
var aa= new A();
aa.fly();
aa.swing();
alert(a.fly == undefined,);
C.prototype.jump= function() {alert('Jump');}
aa.jump(); //OK
alert(a.jump == undefined); //Why?
alert(pc.jump != undefined); //这里应该与a的情形相同,但确
[/code]
看了问题http://www.iteye.com/problems/3251 中的解释后
再尝试修改A.prototype
[code="javascript"]
A.prototype.jump= function() { alert("Self Jump"); };
alert(a.jump == undefined); //Why?
[/code]
奇怪的是aa.jump()被修改了,但a.jump依然不存在