10node.js工具类util.inherits和util.inspect

10月11号:今天你在哪一步?
1:什么是util
util是node.js核心模块,提供常用函数的集合,用于弥补核心js的功能
2:util.inherits
util.inherits是一个实现对象间原型继承的函数。

js中面向对象的特性基于原型,没有提供对象继承的语言级别特性。是通过原型复制来完成。

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);   //定义一个基础对象Base和一个继承自Base的Sub,有三个在构造
                            //函数内定义的属性和一个原型中定义的函数,通过uril.inherits实现继承。
var objBase = new Base();
objBase.showName();
objBase.sayHello();

console.log(objBase);
console.log('=====================================');

var objSub = new Sub();
//结果显示:sub仅仅继承利Base在原型中定义的函数,而在构造函数内部创造的base属性和sayHello函数都没有被Sub继承
//同时:在原型中的属性不会被console.log作为对象的属性输出。
objSub.showName();
console.log('objSub.name='+objSub.name);
console.log('objSub.base='+objSub.base);
objSub.sayHello();  //不能执行
console.log(objSub);

3:util.inspect
util.inspect(object,[showHidden],[depth],[colors])是一个将任意对象转换为字符串的方法,
通常用于调试和错误的输出。
<1>showhidden - 是一个可选参数,如果值为true,将会输出更多隐藏信息。
<2>depth - 表示最大递归的层数。如果对象很复杂,可以指定层数控制输出信息的多少。
<3>如果不指定depth,默认会递归3层,指定为null表示不限递归层数完整遍历对象。
<4>如果color = true,输出格式将会以ansi颜色编码,通常用于在终端显示更漂亮的效果。

注意:特别要指出的是,util.inspect并不会简单地直接把对象转换为字符串,即使对该对象定义了toString方法也不会调用

var util = require('util');
function Person(){
    this.name = 'bangbang';
    this.toString = function(){
        return this.name;
    }
}
var obj = new Person();
console.log(util.inspect(obj));
console.log(util.inspect(obj,true));



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值