本文實例講述了nodejs基礎之常用工具模塊util用法。分享給大家供大家參考,具體如下:
util是nodejs的核心模塊,提供常用函數的集合,用戶彌補核心javascript的功能過于精簡的不足
util.inherits
是一個實現對象間原型繼承的函數
javascript的面向對象特性是基于原型的,與常見的基于類的不同。javascript沒有提供對象繼承的語言級別特性,而是通過原型復制來實現的。
示例:
var util = require('util');function Father(){ //在構造函數內部定義,不能被繼承 this.name = 'base'; //在構造函數內部定義,不能被繼承 this.birth = 1991; //在構造函數內部定義,不能被繼承 this.sayHello = function(){ console.log('hello'+this.name); }}//在原型中定義,可以被繼承Father.prototype.age=18;//在原型中定義,可以被繼承Father.prototype.showName = function(){ console.log(this.name); console.log(this.age);}//在原型中定義,可以被繼承Father.prototype.showAge = function(){ console.log(this.age);}function Son(){}util.inherits(Son,Father);var objBase = new Father();objBase.showName();objBase.sayHello();console.log(objBase);var objSub = new Son();objSub.showAge();
我們定義了一個基礎對象Father 和一個繼承自Father 的Son,Father 在構造函數內定義兩個屬性(name,birth)和一個函數(sayHello);在原型中定義一個屬性(age)和兩個函數(showName,showAge),通過util.inherits
實現繼承。
注意:
Son僅僅繼承了Father 在原型中定義的函數,而構造函數內部創造的 Father 屬 性和 sayHello 函數都沒有被 Son繼承。
同時,在原型中定義的屬性不會被console.log 作 為對象的屬性輸出。
util.inspect
util.inspect(object,[showHidden],[depth],[colors])
是一個將任意對象轉換 為字符串的方法,通常用于調試和錯誤輸出。它至少接受一個參數 object,即要轉換的對象。
特別要指出的是,util.inspect
并不會簡單地直接把對象轉換為字符串,即使該對 象定義了toString 方法也不會調用。
示例:
var util = require('util');function Person() { this.name = 'byvoid'; this.toString = function() { return this.name; };}var obj = new Person();console.log(util.inspect(obj));console.log(util.inspect(obj, true));
結果:
{ name: 'byvoid', toString: [Function] }
{ toString:
{ [Function]
[prototype]: { [constructor]: [Circular] },
[caller]: null,
[length]: 0,
[name]: '',
[arguments]: null },
name: 'byvoid' }
util.isArray(object)
如果給定的參數 "object" 是一個數組返回true,否則返回false。
var util = require('util');util.isArray([])// trueutil.isArray(new Array)// trueutil.isArray({})// false
util.isRegExp(object)
如果給定的參數 "object" 是一個正則表達式返回true,否則返回false。
var util = require('util');util.isRegExp(/some regexp/)// trueutil.isRegExp(new RegExp('another regexp'))// trueutil.isRegExp({})// false
util.isDate(object)
如果給定的參數 "object" 是一個日期返回true,否則返回false。
var util = require('util');util.isDate(new Date())// trueutil.isDate(Date())// false (without 'new' returns a String)util.isDate({})// false
util.isError(object)
如果給定的參數 "object" 是一個錯誤對象返回true,否則返回false。
var util = require('util');util.isError(new Error())// trueutil.isError(new TypeError())// trueutil.isError({ name: 'Error', message: 'an error occurred' })// false
希望本文所述對大家nodejs程序設計有所幫助。
新聞熱點
疑難解答