Pergunta

Estou tentando criar uma classe base que tenha a funcionalidade createjs EventDispatcher e, em seguida, criar subclasses a partir dessa classe base, mas se eu tentar usar addEventListener na instância da subclasse, recebo o erro:

TypeError: _subClass.addEventListener is not a function

Os construtores das minhas classes ficam assim:

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;
};

Como posso fazer com que a SubClass herde a funcionalidade aplicada do despachante de eventos CreateJS da BaseClass?Até agora, só funciona se eu também aplicar o despachante de eventos no construtor da subclasse, mas isso de alguma forma desafia todo o propósito da herança:

createjs.EventDispatcher.initialize(SubClass.prototype);
Foi útil?

Solução

Você deve inicializar seus protótipos durante a inicialização, não no construtor.Aqui está um violino atualizado: 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top