使用EventEmitter和仅使用函数有什么区别?

从这个问题可以看出,我对Node.js很陌生。 如果这样的问题不适合这个论坛,我很抱歉,请你指导我到一个更好的地方,请。

我正在看Lynda的一些培训课程,我们正在介绍EventEmitter。 在下面的代码中,我们必须添加一个事件到Person对象。 我的问题是,为什么以这种方式添加此事件,而不是从一开始就添加一个称为Person对象的函数? 非常感谢你!

var EventEmitter = require('events').EventEmitter; var util = require('util'); var Person = function(name) { this.name = name; }; util.inherits(Person, EventEmitter); var ben = new Person("Ben Franklin"); ben.on('speak', function(said) { console.log(`${this.name}: ${said}`); }); ben.emit('speak', "You may delay, but time will not."); 

当你无法控制(很多)事件的发生时, EventEmitter是有帮助的。 它们可能是由您不能控制的一些asynchronous操作引起的。 例如,数据库断开连接。

在这个例子中,事件是Ben讲的东西。 你不控制本。

你可以通过定义一个监听器来响应自己的事件 – 一个在上述事件发生时执行的函数。