继承两个类 - Javascript

时间:2015-02-09 21:39:02

标签: javascript inheritance multiple-inheritance easeljs createjs

我正在创建一个新的类定义Button,它扩展了EaselJS中现有的Container类。没有问题。但是,我也希望Button继承超级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');
}());

1 个答案:

答案 0 :(得分:1)

Javascript和扩展名CreateJS不支持多重继承。你可以:

  1. 重新考虑您的继承结构(例如,使用Button extend All扩展Container)
  2. 将All中的成员合并到您的Button类或实例中:Button.prototype.doSomething = All.prototype.doSomethingmyButton.doSomething = All.prototype.doSomething
  3. 将成员注入一个超类,例如DisplayObject,它由您希望成员所在的所有类扩展:DisplayObject.prototype.doSomething = All.prototype.doSomething