我正在尝试使用函数将 B 类扩展到 A 类,将 A 类扩展到 Super 类。以下代码可以正常工作:
function Super() {
this.talk = function () {
alert("Hello");
};
}
function A() {
// instance of A inherits Super
Super.apply(this);
}
function B() {
// instance of B inherits A
A.apply(this);
}
var x = new B();
x.talk(); // Hello
但是如果我想让 A 类继承自 Super 类,而不仅仅是它的实例呢?我试过这个:
function Super() {
this.talk = function () {
alert("Hello, I'm the class");
};
// function of the class' instance?
this.prototype.talk = function () {
alert("Hello, I'm the object");
};
}
function A() {
// nothing here
}
// A inherits from Super, not its instance
Super.apply(A);
function B() {
// instance of B inherits A
A.apply(this);
}
A.talk(); // static function works!
var x = new B();
x.talk(); // but this doesn't...
难道我做错了什么?