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)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。