node-util
Node.js 常用工具
util 是一個Node.js 核心模塊,提供常用函數的集合,用于彌補核心JavaScript 的功能 過于精簡的不足。util.inherits
util.inherits(constructor, superConstructor) 是一個實現對象間原型繼承的函數。JavaScript 的面向對象特性是基于原型的,與常見的基于類的不同。JavaScript 沒有提供對象繼承的語言級別特性,而是通過原型復制來實現的。util.inherits 的用法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
Hello base
{ name: 'base', base: 1991, sayHello: [Function] }
sub
{ name: 'sub' }注意:Sub 僅僅繼承了Base 在原型中定義的函數,而構造函數內部創造的 base 屬 性和 sayHello 函數都沒有被 Sub 繼承。同時,在原型中定義的屬性不會被 console.log 作 為對象的屬性輸出。util.inspect(object,[showHidden],[depth],[colors]) 是一個將任意對象轉換 為字符串的方法,通常用于調試和錯誤輸出。它至少接受一個參數 object,即要轉換的對象。
showHidden 是一個可選參數,如果值為 true,將會輸出更多隱藏信息。
depth 表示最大遞歸的層數,如果對象很復雜,你可以指定層數以控制輸出信息的多 少。如果不指定depth,默認會遞歸2層,指定為 null 表示將不限遞歸層數完整遍歷對象。
如果color 值為 true,輸出格式將會以ANSI 顏色編碼,通常用于在終端顯示更漂亮 的效果。
特別要指出的是,util.inspect 并不會簡單地直接把對象轉換為字符串,即使該對象定義了 toString 方法也不會調用。util.isArray(object)
如果給定的參數 "object" 是一個數組返回true,否則返回false。util.isRegExp(object)
如果給定的參數 "object" 是一個正則表達式返回true,否則返回false。util.isDate(object)
如果給定的參數 "object" 是一個日期返回true,否則返回false。util.isError(object)
如果給定的參數 "object" 是一個錯誤對象返回true,否則返回false。
?
總結
- 上一篇: nodejs-文件系统
- 下一篇: node-全局对象