【问题标题】:Using class extends instead of util.inherits使用类扩展而不是 util.inherits
【发布时间】:2016-03-16 14:08:21
【问题描述】:

而不是使用:

var inherits = require('util').inherits;
var EventEmitter = require('events').EventEmitter;

var Clock = function Clock() {
  this._started = false;
  EventEmitter.call(this);
};

inherits(Clock, EventEmitter);

Clock.prototype.start = function start() {};

使用类扩展更干净恕我直言:

var EventEmitter = require('events').EventEmitter;

class Clock extends EventEmitter {
  constructor() {
    super();
    this.super_ = EventEmitter;
    this._started = false;
  }

  start() {}
}

我已将 this.super_ = EventEmitter 添加到构造函数中,只是因为 util.inherits 正在做同样的事情 (ctor.super_ = superCtor;)。我试过没有它,看起来它也可以工作。

现在我的问题是: super_ 属性是否必要,Node 是否以某种方式使用它?或者使用 ES6 类扩展而不是使用 util.inherits 继承的“节点方式”有什么问题吗?

【问题讨论】:

    标签: javascript node.js class ecmascript-6


    【解决方案1】:

    不,它不是nodejs 使用的属性,这只是util 增加的额外便利。

    【讨论】:

      猜你喜欢
      • 2016-07-15
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多