我正在创建一个自定义事件对象,以便我可以将自定义事件注入另一个对象,到目前为止我已经(简化),
function Game() {
new Events(["pause", "resume"], this);
};
function Events(events, obj) {
// Event object for object
obj.events = {};
// For each event
events.forEach(function(event) {
// Attach event array to store callbacks
this.events[event] = [];
}, obj);
// Fire event
obj.fire = function(event) {
////////////
};
// Add event
obj.on = function(event, callback) {
////////////
};
};
我的问题是,这是正确的方法吗?从Event
拨打Game
并从Game
添加到Events
是否可以?由于某种原因我觉得不对,我不知道为什么?
我是否有任何方法可以构建我不知道的代码?
(我不想将Events
添加到Game
的原型中,原因仅在于Game
有事件而且不是Events
的扩展名1)
感谢您抽出宝贵时间阅读我的问题。
答案 0 :(得分:2)
我的问题是,这是正确的方法吗?是否可以从游戏中调用事件并添加到游戏中的游戏?
是的,完全没问题。这称为decorator pattern。我没有理由认为这是错误的。
我有什么方法可以构建我不知道的代码吗?
请勿使用new
。 Events
不是构造函数。一个更好,更具描述性的签名可能是
function makeEventEmitter(obj, events) {