Javascript EventEmitter只是映射对象中的函数吗?
比如说Javascript EventEmitter只是映射对象中的函数吗?,javascript,node.js,events,eventemitter,Javascript,Node.js,Events,Eventemitter,比如说 var event = { message: function(message){console.log(message);} } //polling here { if(response.type == "message") { event[response.type](response.message); } } 应该与 events.on("message", function(message){console.log(messa
var event = {
message: function(message){console.log(message);}
}
//polling here
{
if(response.type == "message")
{
event[response.type](response.message);
}
}
应该与
events.on("message", function(message){console.log(message);});
//polling here
{
events.emit(response.type, response.message);
}
如果不是,除了辅助函数(如.once
)之外,它与EventEmitter有何不同
由于不同的原因,我同时使用这两种方法。EventEmitter用于事件驱动函数,而事件
对象用于保存一组有组织的函数,以便从单个上下文(事件
)触发
编辑:
修改代码以使用多个函数/侦听器
var event = {
message: []
}
event.message.push(function(message){console.log(message)});
//polling here
{
if(response.type == "message")
{
for(var func in event[response.type])
{
event[response.type][func](response.message);
}
}
}
从更广的角度来看,它确实是一个对象(EvenEmitter类),它公开了一组方法,用于向事件注册侦听器函数,并删除这些侦听器函数,以及其他各种函数,这些函数改变了它的内部封闭事件对象 除此之外,触发事件的所有核心模块都继承自EventEmitter类,从而获得对中心事件对象的访问。
因此,是的,它确实将函数映射到对象。我已经更新了答案,但从我的角度来看,它确实更新了答案。