javascript - 创建自定义 EventEmitter 时是否需要 events.EventEmitter.call(this)?

标签 javascript node.js events prototype eventemitter

有很多示例在自定义事件发射器构造函数中未使用 events.EventEmitter.call(this),而其他示例正在使用它 (official documentation):

var events = require('events')
  , util   = require('util');

var MyEmitter = function () {
    events.EventEmitter.call(this);
};

util.inherits(MyEmitter, events.EventEmitter);

MyEmitter.prototype.write = function () {
    this.emit('tick');
};

以我对 JavaScript 的基本了解,我不知道是否需要它。是否需要调用以初始化 EventEmitter 中的内容?

最佳答案

是的,是的。

在 Node 0.10 之前,如果您忘记它也不会崩溃。

现在,it will :

The EventEmitter constructor initializes various properties now. It still works fine as an OOP inheritance parent, but you have to do inheritance properly. The Broken-Style JS inheritance pattern will not work when extending the EventEmitter class. This inheritance style was never supported, but prior to 0.10, it did not actually break.

关于javascript - 创建自定义 EventEmitter 时是否需要 events.EventEmitter.call(this)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16674410/

相关文章:

javascript - 使用Browserify编译NPM包

javascript - 在 Javascript 中添加事件的正确且最有效的方法?

javascript - 如何覆盖/替换现有对象

javascript - 奇怪的事情——当我切换视觉和文本选项卡时,onclick 事件消失

javascript - 使用 Promise 链接多个异步函数

javascript - 如何在 twilio 中更好地控制出站消息?

c# - 通知模态表单的父级它需要采取一些行动

jquery - ASP.NET WebForms/jQuery : jQuery . 按钮上的单击事件使按钮的服务器端 OnClick 事件无法触发

javascript - 在 Javascript 中,是一堆小的 setInterval 循环还是一个大循环更快?

javascript - ng-model 中的动态变量