CreateJS EventDispatcher e herança
-
21-12-2019 - |
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);
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