而不是使用:
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() {};
使用class extends非常简洁:
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;)。我试过没有它,看起来它没有那么好用。
现在我的问题是:必须使用超级属性,节点是否以某种方式使用它?或者使用ES6类扩展而不是" Node的方式" util.inherits的继承?
答案 0 :(得分:0)
不,它不是nodejs
使用的属性,这只是util
添加的额外便利。