util.inherits(constructor, superConstructor)
曆史
版本 | 變化 |
---|---|
v5.0.0 |
|
v0.3.0 | 添加於:v0.3.0 |
Stability: 3 - 舊版:改用 ES2015 類語法和
extends
關鍵字。參數
constructor
<Function>superConstructor
<Function>
不鼓勵使用util.inherits()
。請使用 ES6 class
和 extends
關鍵字來獲得語言級別的繼承支持。另請注意,這兩種樣式是 semantically incompatible 。
將原型方法從一個constructor 繼承到另一個。 constructor
的原型將設置為從 superConstructor
創建的新對象。
這主要在 Object.setPrototypeOf(constructor.prototype, superConstructor.prototype)
之上添加了一些輸入驗證。作為額外的便利,superConstructor
可以通過constructor.super_
屬性訪問。
const util = require('node:util');
const EventEmitter = require('node:events');
function MyStream() {
EventEmitter.call(this);
}
util.inherits(MyStream, EventEmitter);
MyStream.prototype.write = function(data) {
this.emit('data', data);
};
const stream = new MyStream();
console.log(stream instanceof EventEmitter); // true
console.log(MyStream.super_ === EventEmitter); // true
stream.on('data', (data) => {
console.log(`Received data: "${data}"`);
});
stream.write('It works!'); // Received data: "It works!"
使用 class
和 extends
的 ES6 示例:
const EventEmitter = require('node:events');
class MyStream extends EventEmitter {
write(data) {
this.emit('data', data);
}
}
const stream = new MyStream();
stream.on('data', (data) => {
console.log(`Received data: "${data}"`);
});
stream.write('With ES6');
相關用法
- Node.js util.inherits()用法及代碼示例
- Node.js util.inspect()用法及代碼示例
- Node.js util.inspect(object[, showHidden[, depth[, colors]]])用法及代碼示例
- Node.js util.inspect.custom用法及代碼示例
- Node.js util.inspect.defaultOptions用法及代碼示例
- Node.js util.isUndefined(object)用法及代碼示例
- Node.js util.isObject(object)用法及代碼示例
- Node.js util.isString(object)用法及代碼示例
- Node.js util.isPrimitive(object)用法及代碼示例
- Node.js util.isNull(object)用法及代碼示例
- Node.js util.isFunction(object)用法及代碼示例
- Node.js util.isArray(object)用法及代碼示例
- Node.js util.isNumber(object)用法及代碼示例
- Node.js util.isRegExp(object)用法及代碼示例
- Node.js util.isSymbol(object)用法及代碼示例
- Node.js util.isNullOrUndefined(object)用法及代碼示例
- Node.js util.isBoolean(object)用法及代碼示例
- Node.js util.isBuffer(object)用法及代碼示例
- Node.js util.isError(object)用法及代碼示例
- Node.js util.isDate(object)用法及代碼示例
- Node.js util.isDeepStrictEqual()用法及代碼示例
- Node.js util.types.isInt16Array(value)用法及代碼示例
- Node.js util.types.isNativeError(value)用法及代碼示例
- Node.js util.types.isArrayBufferView(value)用法及代碼示例
- Node.js util.types.isMap(value)用法及代碼示例
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 util.inherits(constructor, superConstructor)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。