Pregunta

Estoy tratando de crear una clase base que tenga la funcionalidad de EventDispatcher de CreateJS y luego cree subclases de esta clase base, pero si luego intento usar AddEventListener en la instancia de Subclass, obtengo el error:

TypeError: _subClass.addEventListener is not a function

Los constructores de mis clases se ven así:

var BaseClass = function(id)
{
    _instance = this;
    _id = id;
    createjs.EventDispatcher.initialize(BaseClass.prototype);
};

var SubClass = function(id)
{
    BaseClass.call(this, id);
    SubClass.prototype = Object.create(BaseClass.prototype);
    _instance = this;
};

¿Cómo puedo hacer que funcione para que Subclass hereda la funcionalidad de despachador de eventos de CreateJS aplicada desde Basellass?Hasta ahora solo funciona si también aplico el despachador de eventos en el constructor de subclase, pero de alguna manera desafía todo el propósito de la herencia:

createjs.EventDispatcher.initialize(SubClass.prototype);

¿Fue útil?

Solución

Debe inicializar sus prototipos durante la inicialización, no en el constructor.Aquí hay un violín actualizado: http://jsfiddle.net/lannymcnie/qthb4/

var BaseClass = function(id)
{
    _instance = this;
    _id = id;
};
createjs.EventDispatcher.initialize(BaseClass.prototype);

var SubClass = function(id)
{
    BaseClass.call(this, id);
    _instance = this;
};
SubClass.prototype = BaseClass.prototype;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top