一般的なツールをNode.jsの
Node.jsのUTIL機能があまりにも不十分な合理化JavaScriptのコアを構成するために使用される一般的に使用される関数の集合を提供し、コアモジュールです。
util.inherits
util.inherits(コンストラクタ、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);
我々は、ベースオブジェクトは、ベースとサブの基地から継承する定義、基本関数はコンストラクタと継承util.inheritsによって定義されたプロトタイプ内で定義された3つの属性を持っています。 結果は以下のとおりであります:
base
Hello base
{ name: 'base', base: 1991, sayHello: [Function] }
sub
{ name: 'sub' }
注:サブベースは、唯一のサブ継承されていないのsayHello関数属性ベースを作成するために、プロトタイプで定義された関数、および内部構造と機能を継承しています。
一方、プロトタイプのプロパティは、プロパティにconsole.log出力のオブジェクトとして定義することはできません。 我々はobjSub.sayHello()を削除する場合は、この行をコメントに、あなたが表示されます。
node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ TypeError: Object #<Sub> has no method 'sayHello' at Object.<anonymous> (/home/byvoid/utilinherits.js:29:8) at Module._compile (module.js:441:26) at Object..js (module.js:459:10) at Module.load (module.js:348:31) at Function._load (module.js:308:12) at Array.0 (module.js:479:10) at EventEmitter._tickCallback (node.js:192:40)
util.inspect
util.inspect(オブジェクト、[showHidden]、[深さ]、[色])は、文字列の方法、通常、デバッグおよびエラー出力に使用する任意のオブジェクトです。 それはそれは変換すること、である、オブジェクト、少なくとも一つのパラメータオブジェクトを受け取ります。
showHiddenがtrueの場合、出力はより多くの隠された情報となり、オプションのパラメータです。
最大の再帰の深さは、オブジェクトが複雑である場合は、情報の出力を制御する方法を多くの層を指定することができ、層の数を示します。 あなたは深さ、再帰的なデフォルト層2を指定しない場合は、再帰的に無傷のオブジェクトレイヤーを横切る限定ヌルとして指定を示しています。 色が真である場合、出力フォーマットがANSIカラーコードになり、それは、一般的に端末のより美しい効果のために使用されます。
特に注目すべきなの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(オブジェクト)
指定されたパラメータ「オブジェクト」アレイがtrueを返している場合、それ以外の場合はfalseを返します。
var util = require('util');
util.isArray([])
// true
util.isArray(new Array)
// true
util.isArray({})
// false
util.isRegExp(オブジェクト)
指定されたパラメータ「オブジェクト」は正規表現の場合そうでない場合はfalseを返し、trueを返します。
var util = require('util');
util.isRegExp(/some regexp/)
// true
util.isRegExp(new RegExp('another regexp'))
// true
util.isRegExp({})
// false
util.isDate(オブジェクト)
指定されたパラメータ「オブジェクト」の日付がtrueを返している場合は、それ以外の場合はfalseを返します。
var util = require('util');
util.isDate(new Date())
// true
util.isDate(Date())
// false (without 'new' returns a String)
util.isDate({})
// false
util.isError(オブジェクト)
指定されたパラメータ「オブジェクト」エラーオブジェクトがtrueを返している場合は、それ以外の場合はfalseを返します。
var util = require('util');
util.isError(new Error())
// true
util.isError(new TypeError())
// true
util.isError({ name: 'Error', message: 'an error occurred' })
// false
詳細はアクセスすることができますhttp://nodejs.org/api/util.html詳細については。