位置:电子教程 > Node.js在线教程 (如果看不到内容请使用360浏览器) 推荐学习资源
Node概要
Node.js 安装配置
安装开发工具vscode和配置汉化
Node.js 创建第一个应用
NPM 使用介绍
Node.js REPL(交互式解释器)
Node.js 回调函数
Node.js 事件循环
Node.js EventEmitter
Node.js Stream(流)
Node.js模块系统
Node.js 全局对象
console
Node.js 函数
Node.js 路由
Node.js 常用工具
Node.js GET/POST请求
当前阅读教程:Node.js在线教程 > util.inherits
阅读(22555525)      收藏       赞(5685)      分享
上一篇: util.callbackify 下一篇: util.inspect

util.inherits(constructor, superConstructor) 是一个实现对象间原型继承的函数。

JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同。JavaScript 没有提供对象继承的语言级别特性,而是通过原型复制来实现的。

在这里我们只介绍 util.inherits 的用法,示例

小白教程网www.2d5.net

如下:

var util = require('util');
function Base() {
    this.name = 'base';
    this.base = 1991;
    this.sayHello = function() {
    console.log('Hello ' + this.name);
    };
}
Base.prototype.showName = function() {
    console.log(this.name);
};
function Sub() {
    this.name = 'sub';
}
util.inherits(Sub, Base);
var objBase = new Base();
objBase.showName();
objBase.sayHello();
console.log(objBase);
var objSub = new Sub();
objSub.showName();
//objSub.sayHello();
console.log(objSub);

我们定义了一个基础对象 Base 和一个继承自 Base SubBase 有三个在构造函数内定义的属性和一个原型中定义的函数,通过util.inherits 实现继承。运行结果如下:

D:
ode>node util02.js
base
Hello base
Base { name: 'base', base: 1991, sayHello: [Function] }
sub
Sub { name: 'sub' }

注意:Sub 仅仅继承了Base 在原型中定义的函数,而构造函数内部创造的 base 性和 sayHello 函数都没有被 Sub 继承。

同时,在原型中定义的属性不会被 console.log 为对象的属性输出。如果我们去掉 objSub.sayHello(); 这行的注释,将会看到:

D:
odeutil02.js:22
objSub.sayHello();
       ^
 
TypeError: objSub.sayHello is not a function
    at Object.<anonymous> (D:
odeutil02.js:22:8)
?[90m    at Module._compile (internal/modules/cjs/loader.js:1158:30)?[39m
?[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)?[39m
?[90m    at Module.load (internal/modules/cjs/loader.js:1002:32)?[39m
?[90m    at Function.Module._load (internal/modules/cjs/loader.js:901:14)?[39m
?[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)?[39m
?[90m    at internal/main/run_main_module.js:18:47?[39m

 


上一篇: util.callbackify 下一篇: util.inspect
计算机毕业设计作品网      毕业设计文档网      小程序教程网       毕业设计资料网  |         毕业设计定制QQ:45157718(微信同号)(备注:毕设)