我正在尝试创建一个具有createjs EventDispatcher功能的基类,然后从这个基类创建子类,但是如果我随后尝试在子类实例上使用addEventListener,我会收到错误:
TypeError: _subClass.addEventListener is not a function
我的类的构造函数如下所示:
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;
};
如何使其工作,以便子类从基类继承应用的 CreateJS 事件调度程序功能?到目前为止,它仅在我还在子类构造函数中应用事件调度器时才有效,但这在某种程度上违背了继承的全部目的:
createjs.EventDispatcher.initialize(SubClass.prototype);
您应该在初始化期间初始化原型,而不是在构造函数中。这是一个更新的小提琴: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;