import EventEmitter from 'events'; const emitter = new EventEmitter(); const spread = { ...emitter }; console.log(spread.on); // undefined console.log(emitter.on); // [Function: addListener]¿Por qué la difusión abandona este método? ¿Y cómo puedo evitar que eso suceda?
¿Por qué la difusión abandona este método?
Porque la sintaxis extendida solo copia propiedades enumerables propias del destino. No copia las propiedades heredadas y no copia el prototipo del objeto.
No estoy seguro de que pueda clonar un EventEmitter , pero si puede, no será una simple frase. Tendría que crear una nueva instancia, obtener los eventos para los que tiene oyentes ( eventNames ), luego obtener los oyentes para cada evento ( listeners ), etc. E incluso entonces, algunas cosas son subclases de EventEmitter ...