【发布时间】: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