2016-03-16 39 views
0

而不是使用:使用类扩展而不是util.inherits

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;)。我尝试了没有它,它看起来没有它的作品。

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

回答

相关问题