继承两个 类 - Javascript
Inherit two classes - Javascript
我正在创建一个新的 class 定义 Button
,它扩展了 EaselJS 中现有的 Container
class。没有问题。但是,我也希望 Button
从超级 class All
继承,这样 Button
也可以访问它的 .banana
和 .eatBanana
.我该怎么做?
(function() {
function All() {
this.banana = 0;
}
var p = All.prototype;
p.eatBanana = function() {
alert(this.banana);
}
window.All = All;
}());
(function() {
function Button(apple) {
this.apple = apple || 0;
this.Container_constructor();
}
var p = createjs.extend(Button, createjs.Container);
p.sayHi = function() {
alert(this.apple + this.banana);
}
window.Button = createjs.promote(Button, 'Container');
}());
Javascript,通过扩展 CreateJS,不支持多重继承。你可以:
- 重新考虑您的继承结构(例如让 Button extend All 扩展 Container)
- 将来自 All 的成员混入您的 Button class 或实例:
Button.prototype.doSomething = All.prototype.doSomething
或 myButton.doSomething = All.prototype.doSomething
。
- 将成员注入到一个超级 class 中,例如 DisplayObject,它由您想要成员的所有 classes 扩展:
DisplayObject.prototype.doSomething = All.prototype.doSomething
.
我正在创建一个新的 class 定义 Button
,它扩展了 EaselJS 中现有的 Container
class。没有问题。但是,我也希望 Button
从超级 class All
继承,这样 Button
也可以访问它的 .banana
和 .eatBanana
.我该怎么做?
(function() {
function All() {
this.banana = 0;
}
var p = All.prototype;
p.eatBanana = function() {
alert(this.banana);
}
window.All = All;
}());
(function() {
function Button(apple) {
this.apple = apple || 0;
this.Container_constructor();
}
var p = createjs.extend(Button, createjs.Container);
p.sayHi = function() {
alert(this.apple + this.banana);
}
window.Button = createjs.promote(Button, 'Container');
}());
Javascript,通过扩展 CreateJS,不支持多重继承。你可以:
- 重新考虑您的继承结构(例如让 Button extend All 扩展 Container)
- 将来自 All 的成员混入您的 Button class 或实例:
Button.prototype.doSomething = All.prototype.doSomething
或myButton.doSomething = All.prototype.doSomething
。 - 将成员注入到一个超级 class 中,例如 DisplayObject,它由您想要成员的所有 classes 扩展:
DisplayObject.prototype.doSomething = All.prototype.doSomething
.