Node.js – util.inherits() 方法

该方法基本上将方法从一个构造继承到另一个构造。这个原型将被设置为来自superConstructor的新对象。util.inherits()

通过这样做,我们主要可以在Object.setPrototypeOf(constructor.prototype, superConstructor.prototype)的顶部添加一些验证。

语法

util.inherits(constructor, superConstructor)

参数

参数说明如下——

  • 构造函数 - 这是一个函数类型输入,保存用户想要继承的构造函数的原型。

  • superConstructor - 这是将用于添加和验证输入验证的函数。

示例 1

创建一个文件“ inherits.js ”并复制以下代码片段。创建文件后,使用命令“ node inherits.js ”运行此代码。

// util.inherit() 示例

// 导入 util 模块

const util = require('util');

const EventEmitter = require('events');

// 定义下面的构造函数

function Stream() {

   EventEmitter.call(this);

}

// 继承流构造函数

util.inherits(Stream, EventEmitter);

// 使用一些数据为构造函数创建原型

   Stream.prototype.write = function(data) {

   this.emit('data', data);

};

// 创建一个新的流构造函数

const stream = new Stream();

// 检查流是否为 instanceOf EventEmitter

console.log(stream instanceof EventEmitter); // 真的

console.log(Stream.super_ === EventEmitter); // 真的

// 打印数据

stream.on('data', (data) => {

   console.log(`Data Received: "${data}"`);

});

// 在流中传递数据

stream.write('Its working... Created the constructor prototype!');

输出结果
C:\home\node>> node inherits.js

true

true

Dta Received: "It's working... Created the constructor prototype!"

示例 2

让我们再看一个例子

// util.inherits() 示例

// Importing the util & events module

const util = require('util');

const { inspect } = require('util');

const emitEvent = require('events');

// 定义类以发出流数据

class streamData extends emitEvent {

write(stream_data) {

   // 这将发出数据流

   this.emit('stream_data', stream_data);

   }

}

// 创建流的新实例

const manageStream = new streamData('default');

console.log("1.", inspect(manageStream, false, 0, true))

console.log("2.", streamData)

manageStream.on('stream_data', (stream_data) => {

   // 流后打印写语句

   console.log("3.", `Data Stream Received: "${stream_data}"`);

});

// 在控制台上写

manageStream.write('Inheriting the constructor & checking from superConstructor');

输出结果
C:\home\node>> node inherits.js

1. streamData {

   _events: [Object: null prototype] {},

   _eventsCount: 0,

   _maxListeners: undefined,

   [Symbol(kCapture)]: false

}

2. [class streamData extends EventEmitter]

3. Data Stream Received: "Inheriting the constructor & checking from superConstructor"

以上是 Node.js – util.inherits() 方法 的全部内容, 来源链接: utcz.com/z/357527.html

回到顶部