另一个对象的Javascript自定义事件对象?

时间:2013-05-06 16:23:03

标签: javascript events object

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

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。我没有理由认为这是错误的。

  

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

请勿使用newEvents不是构造函数。一个更好,更具描述性的签名可能是

function makeEventEmitter(obj, events) {