El módulo «util» proporciona funciones de «utilidad» que se utilizan con fines de depuración. Para acceder a esas funciones necesitamos llamarlas (por ‘require(‘util’)’).
El método util.inherits() (agregado en v0.3.0) es una interfaz de programación de aplicaciones incorporada del módulo util en el que el constructor hereda los métodos prototipo de uno a otro y el prototipo de ese constructor se establece en un nuevo objeto que es creado a partir de superConstructor. Se usa principalmente para agregar o heredar alguna validación de entrada además de Object.setPrototypeOf(constructor.prototype, superConstructor.prototype) . Y se puede acceder a superConstructor a través de constructor.super_property para mayor comodidad. Su uso (es decir, util.inherits() ) no se recomienda mucho en su lugar, se recomienda el uso de la clase ES6 y se recomiendan palabras clave extendidas para obtener soporte de herencia de nivel de idioma.
Sintaxis:
const util = require('util'); util.inherits(constructor, superConstructor)
Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:
-
constructor <Función> : Es cualquier <función> que el usuario quiere heredar de la clase.
-
superConstructor <Función> : es cualquier <función> que se usa principalmente para agregar o heredar alguna validación de entrada.
Valor de retorno < indefinido >: Devuelve valor indefinido.
Ejemplo 1: Nombre de archivo: index.js
// Node.js program to demonstrate the // util.inherits() method // Using require to access util module const util = require( 'util' ); const emitEvent = require( 'events' ); // MyStream function calling EventEmitter function streamData() { emitEvent.call( this ); } // Trying to print value console.log( "1.> Returning util.inherits():" , util.inherits(streamData, emitEvent)); // Returns undefined // Inheriting library via constructor console.log( "2.>" , streamData); // Whole library of the constructor console.log( "3.>" , emitEvent); // Inheriting from EventEmitter util.inherits(streamData, emitEvent); // Emiting events streamData.prototype.write = function (responseData) { this .emit( 'send_data' , responseData); }; // Creating new stream by calling function const stream = new streamData( 'default' ); // Printing instance of eventemitter console.log( "4.> Instance of EventEmitter" , stream instanceof emitEvent); // Returns true // Comparing value and type of an // instance with eventEmitter console.log( "5.> '===' comparison of an " + "Instance with EventEmitter" , streamData.super_ === emitEvent); // Returns true stream.on( 'send_data' , (responseData) => { console.log( "6.>" , `Data Stream Received: "${responseData}" `); }); // Writing on console stream.write( 'Finally it started!' ); // Finally Received the data |
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
1.> Devolviendo util.inherits(): indefinido
2.> [Función: streamData]
3.> <ref *1> [Función: EventEmitter] {una vez: [Función: una vez], ….., listenerCount: [Función (anónima)]}
4.> Instancia de EventEmitter verdadera
5.> ‘===’ comparación de una Instancia con EventEmitter true
6.> Transmisión de datos recibida: «¡Finalmente comenzó!»
Ejemplo 2: Nombre de archivo: index.js
// Node.js program to demonstrate the // util.inherits() method in ES6 // Using require to access util module const util = require('util'); const { inspect } = require('util'); const emitEvent = require('events'); class streamData extends emitEvent { write(stream_data) { // Emitting the data stream this.emit('stream_data', stream_data); } } const manageStream = new streamData('default'); console.log("1.>", inspect(manageStream, false, 0, true)) console.log("2.>", streamData) // Returns true console.log("3.>", streamData === manageStream) console.log("4.>", manageStream) manageStream.on('stream_data', (stream_data) => { // Prints the write statement after streaming console.log("5.>", `Data Stream Received: "${stream_data}"`); }); // Write on console manageStream.write('Finally it started streaming with ES6');
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
1.> streamData { _eventos: [Objeto: prototipo nulo] {}, ……………………, [Símbolo(kCapture)]: falso}
2.> [Función: streamData]
3.> falso
4.> streamData {_eventos: [Objeto: prototipo nulo] {}, ……………………, [Símbolo(kCapture)]: falso}
5.> Transmisión de datos recibida: «Finalmente comenzó a transmitir con ES6»
Referencia: https://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor
Publicación traducida automáticamente
Artículo escrito por amitkumarjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA