JS程序如下:
function A(){
}
function B(){
}
function C(){
this.p = 3;
}
A.prototype = new B();
B.prototype = new C();
var a = new A();
alert(a.p); // 输出:undefined
按照原型链的说法:
a = new A()
|+
|+ prototype = new B()
|+
|+ prototype = new C()
|+ p = 3
【问题】程序无法索引到a.p,到底什么地方理解错了?
[quote]A.prototype = new B();
B.prototype = new C();[/quote]
修改为:
[code="java"]B.prototype = new C();
A.prototype = new B(); [/code]
[quote]A.prototype = new B();
B.prototype = new C();[/quote]
==>
[code="java"] B.prototype = new C();
A.prototype = new B();[/code]
因为在设定A.prototype的时候,B还未关联C.