什么时候应该使用多个事件名称和不同的事件发射器?
When should I use multiple event names vs different event emitters?
哪种活动使用方式更好?
A)
var doorBell = new events.EventEmitter()
var light = new events.EventEmitter()
doorBell.emit('open')
light.emit('on')
doorBell.on('open', function(){
console.log('The door is open!');
});
light.on('on', function(){
console.log('The lights are on');
});
B)
var house = new events.EventEmitter()
house.emit('doorOpen')
house.emit('lightOn')
house.on('doorOpen', function(){
console.log('The door is open!');
});
house.on('lightOn', function(){
console.log('The lights are on');
});
我想知道这两者之间是否有任何区别,性能方面的区别还是真正的区别...
我有点不喜欢给出这个答案,但我会说 这取决于。
如您所知,两种变体都有效,所以这只是一个偏好问题。对象隐藏了复杂性,使用事件时应牢记这一点。在您的示例中,我认为使用一个 house 对象会非常好,该对象会发出事件以打开灯和按门铃。
正如您所预见的那样,添加的事件有时会变得混乱。所以某个事件是否属于某个对象的范围,你得自己判断边界在哪里。
哪种活动使用方式更好?
A)
var doorBell = new events.EventEmitter()
var light = new events.EventEmitter()
doorBell.emit('open')
light.emit('on')
doorBell.on('open', function(){
console.log('The door is open!');
});
light.on('on', function(){
console.log('The lights are on');
});
B)
var house = new events.EventEmitter()
house.emit('doorOpen')
house.emit('lightOn')
house.on('doorOpen', function(){
console.log('The door is open!');
});
house.on('lightOn', function(){
console.log('The lights are on');
});
我想知道这两者之间是否有任何区别,性能方面的区别还是真正的区别...
我有点不喜欢给出这个答案,但我会说 这取决于。
如您所知,两种变体都有效,所以这只是一个偏好问题。对象隐藏了复杂性,使用事件时应牢记这一点。在您的示例中,我认为使用一个 house 对象会非常好,该对象会发出事件以打开灯和按门铃。
正如您所预见的那样,添加的事件有时会变得混乱。所以某个事件是否属于某个对象的范围,你得自己判断边界在哪里。