EventEmitterの継承方法 (ES5,ES6)

  • 19
    いいね
  • 3
    コメント

EventEmitterの継承方法の備忘録。ES5の場合。

ES5の場合

ES5継承(util.inherits使用)
var util = require("util");
var EventEmitter = require("events").EventEmitter;

function MyClass() {
    EventEmitter.call(this);
}

util.inherits(MyClass, EventEmitter);

MyClass.prototype.doSomething = function(data) {
    this.emit("doSomething", data);
}
ES5継承(util.inherits未使用)
var EventEmitter = require("events").EventEmitter;

function MyClass() {
    EventEmitter.call(this);
}

MyClass.prototype = Object.create(EventEmitter.prototype);

MyClass.prototype.doSomething = function(data) {
    this.emit("doSomething", data);
}

ES6の場合

ES6継承
var EventEmitter = require("events").EventEmitter;
class MyClass extends EventEmitter
{
    // 省略可
    constructor(){
        super();
    }

    doSomething(data){
        this.emit("doSomething", data);
    }
}

ES6は便利だな。。