1

我正在制作一个自定义事件对象,以便可以将自定义事件注入另一个对象,到目前为止我已经(简化),

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) {

         ////////////
     };
};

我的问题是,这是正确的方法吗?是否可以调用EventfromGame并添加到Gamefrom Events?由于某种原因,这对我来说似乎是错误的,我不知道为什么?

有什么方法可以构建我不知道的代码吗?

(我不想添加EventsGame的原型,唯一的原因是Game有事件并且不是 的扩展Events

感谢您花时间阅读我的问题。

4

1 回答 1

2

我的问题是,这是正确的方法吗?从游戏中调用事件并从事件中添加到游戏中是否可以?

是的,完全没问题。这称为装饰器模式。我看不出你有什么理由认为这是错误的。

有什么方法可以构建我不知道的代码吗?

不要使用new. Events不是构造函数。一个更好和更具描述性的签名可能是

function makeEventEmitter(obj, events) {
于 2013-05-06T16:50:35.410 回答