setmaxlisteners nodejs node new event emitter custom addlistener javascript node.js

javascript - nodejs - ¿Qué hace EventEmitter.call()?



node js event emitter class (2)

Vi este ejemplo de código:

function Dog(name) { this.name = name; EventEmitter.call(this); }

se "hereda" de EventEmitter, pero ¿qué hace realmente el método call ()?


Básicamente, Dog es supuestamente un constructor con un name propiedad. EventEmitter.call(this) , cuando se ejecuta durante la creación de la instancia Dog , agrega propiedades declaradas del constructor EventEmitter a Dog .

Recuerde: los constructores siguen siendo funciones, y aún pueden ser utilizados como funciones.

//An example EventEmitter function EventEmitter(){ //for example, if EventEmitter had these properties //when EventEmitter.call(this) is executed in the Dog constructor //it basically passes the new instance of Dog into this function as "this" //where here, it appends properties to it this.foo = ''foo''; this.bar = ''bar''; } //And your constructor Dog function Dog(name) { this.name = name; //during instance creation, this line calls the EventEmitter function //and passes "this" from this scope, which is your new instance of Dog //as "this" in the EventEmitter constructor EventEmitter.call(this); } //create Dog var newDog = new Dog(''furball''); //the name, from the Dog constructor newDog.name; //furball //foo and bar, which were appended to the instance by calling EventEmitter.call(this) newDog.foo; //foo newDoc.bar; //bar


EventEmitter.call(this);

Esta línea es aproximadamente equivalente a llamar a super () en idiomas con herencia clásica.