Set event listeners in ES6 class definition that extends EventEmitter

Viewed 10821

I want some predefined custom listeners, that are defined already with the definition of the class (like the build in 'newListner' event). So I don't want to just bind them in the constructor because it would be executed on every new instance of that class.

How to do this? Modify the prototype? Is it possible at all?

What I have so far:

class Cat extends EventEmitter {
  // just added for demonstration, I don't want this!
  constructor() {
    super();
    // does fire
    this.on('wave', function() { console.log('constructor wave'); });
  }
}
// compiles but does not fire
Cat.prototype.on('wave', function() { console.log('prototype wave'); });

var cat = new Cat();
cat.emit('wave');
2 Answers
Related