javascript - 继承两个类 - Javascript

标签 javascript inheritance multiple-inheritance easeljs createjs

我正在创建一个新的类定义Button,它扩展了EaselJS 中现有的Container 类。这没有问题。但是,我还希望 Button 从父类(super 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 不支持多重继承。你可以:

  1. 重新考虑您的继承结构(例如,让 Button 扩展 All,从而扩展 Container)
  2. 将 All 中的成员混合到您的 Button 类或实例中:Button.prototype.doSomething = All.prototype.doSomethingmyButton.doSomething = All.prototype.doSomething >.
  3. 将成员注入(inject)到父类(super class)中,例如 DisplayObject,该父类(super class)由您想要成员的所有类扩展:DisplayObject.prototype.doSomething = All.prototype.doSomething

关于javascript - 继承两个类 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28419899/

相关文章:

c++ - 多重继承 : usage of skipping 'virtual' keyword and refusing the diamond hierarchy?

inheritance - 接口(interface)与抽象和继承

javascript - 如何为 Plotly boxplot 制作自定义 hoverinfo 标签?

c# - 如何声明一个继承自另一个抽象类的抽象泛型类?

java - 为什么Java不允许我通过同一个类的方法访问私有(private)方法?

php - 多重继承和多态有什么区别?

JavaScript时钟

javascript - 使用 javascript 从一页到 div 的 HTML

javascript - 无法在 JavaScript Windows 应用程序中注册后台任务

c# - 在 C# 中覆盖静态类