javascript - 我什么时候应该使用多个事件名称和不同的事件发射器?

标签 javascript node.js eventemitter

使用事件的更好方法是什么?

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 对象来发出开灯和按门铃的事件是完全可以的。

正如您所预见的,添加事件会在某个时刻变得困惑。所以某个事件是否属于某个对象的范围的边界在哪里,你得自己判断。

关于javascript - 我什么时候应该使用多个事件名称和不同的事件发射器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29970738/

相关文章:

javascript - 通过 JavaScript 更改 CSS 属性。 (使用 ID 和类)

javascript - 如何在 Zend Framework 2 中通过 AJAX 表单上传文件?

node.js - Mongoose 选择数组中的数组项

javascript - 如何使用 mysql 数据库在 node.js 中制作登录表单

javascript - 如何获取 PeerJS 服务器中的连接用户列表(使用 express)?

angular - eventEmitter 可以在路由器 socket 上工作吗?

javascript - 中心元素,直到它遇到障碍

javascript - 如何在 Phaser 中使用 A、S、D、W 键?

javascript - 其他模块中的 Node 事件发射器

javascript - Promise 流