2013-05-06 176 views
1

我想提出一个自定义事件对象,以便我可以注入自定义事件到另一个物体,到目前为止,我还(简体),另一个对象的Javascript自定义事件对象?

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

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

我的问题是,这是做到这一点的正确方法?是否认为从Game拨打Event并从Events增加到Game?由于某种原因,我似乎错了,我不知道为什么?

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

(我不希望添加到EventsGame的原型的唯一原因,Game有事件和不是Events扩展)

感谢您百忙之中阅读我的问题的时间。

回答

2

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

是的,它非常好。这被称为decorator pattern。我没有看到你觉得这是错的理由。

有没有什么办法可以构建我不知道的代码呢?

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

function makeEventEmitter(obj, events) { 
+0

所以这是不正确的做法,但你告诉他们正确的方式(不需要新) – 2013-05-06 17:02:27

+0

@Juan:图案(他感觉错了)是好的,只有他有语法问题。我的意思是,因为他没有储存'new'调用的结果,所以它实际上并不重要(除了误导和超快) – Bergi 2013-05-06 17:11:25

+0

谢谢你@Bergi,我明白为什么我现在不应该使用'新'谢谢指出。我不知道从哪里开始尝试为定制事件创建某种系统,并以此结束,所以要知道,除了一些语法问题之外,它确实令我满意!再次感谢。 – user2251919 2013-05-06 17:20:56

相关问题