Node. js 상용 도구 util

8039 단어 node.js
util 은 Node. js 핵심 모듈 로 자주 사용 되 는 함수 의 집합 을 제공 하여 핵심 자바 스 크 립 트 의 기능 이 너무 간단 한 부족 을 보완 하 는 데 사용 합 니 다.
util.inherits
util. inherits (constructor, superConstructor) 는 대상 간 원형 계승 을 실현 하 는 함수 입 니 다.
JavaScript 의 대상 지향 특성 은 원형 에 기반 한 것 으로 흔히 볼 수 있 는 기반 클래스 와 다 릅 니 다.자 바스 크 립 트 는 대상 이 계승 하 는 언어 단계 특성 을 제공 하지 않 고 원형 복 제 를 통 해 이 루어 집 니 다.
여기 서 우 리 는 util. inherits 의 용법 만 소개 합 니 다. 예 는 다음 과 같 습 니 다.
varutil = require('util'); 

functionBase() { 

    this.name = 'base'; 

    this.base = 1991; 

    this.sayHello = function() { 

    console.log('Hello ' + this.name); 

    }; 

} 

Base.prototype.showName = function() { 

    console.log(this.name);

}; 

functionSub() { 

    this.name = 'sub'; 

} 

util.inherits(Sub, Base); 

varobjBase = newBase(); 

objBase.showName(); 

objBase.sayHello(); 

console.log(objBase); 

varobjSub = newSub(); 

objSub.showName(); 

//objSub.sayHello(); 

console.log(objSub); 

우 리 는 기본 대상 Base 와 Base 를 계승 하 는 Sub 를 정 의 했 습 니 다. Base 는 구조 함수 에서 정 의 된 속성 과 원형 에서 정 의 된 함수 가 세 개 있 고 util. inherits 를 통 해 계승 을 실현 합 니 다.실행 결 과 는 다음 과 같 습 니 다.
base 

Hello base 

{ name: 'base', base: 1991, sayHello: [Function] } 

sub 

{ name: 'sub' }

메모: Sub 는 Base 가 원형 에서 정의 하 는 함수 만 계승 하고 구조 함수 내부 에서 만 든 base 속성 과 sayHello 함 수 는 Sub 에 계승 되 지 않 았 습 니 다.
또한 원형 에서 정 의 된 속성 은 console. log 를 대상 으로 하 는 속성 으로 출력 되 지 않 습 니 다.objectSub. 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 (object, [show Hidden], [depth], [colors]) 는 임의의 대상 을 문자열 로 변환 하 는 방법 으로 디 버 깅 과 오류 출력 에 사 용 됩 니 다.이것 은 최소한 하나의 인자 object, 즉 변환 할 대상 을 받 아들 입 니 다.
showHidden 은 선택 할 수 있 는 인자 입 니 다. 값 이 true 이면 더 많은 숨겨 진 정 보 를 출력 합 니 다.
depth 는 최대 재 귀적 인 층 수 를 표시 합 니 다. 대상 이 복잡 하면 출력 정 보 를 얼마나 제어 하 는 지 지정 할 수 있 습 니 다.depth 를 지정 하지 않 으 면 기본 값 은 2 층 으로 되 돌아 갑 니 다. null 로 지정 하면 재 귀 층수 의 전체 스 트 리밍 대상 을 제한 하지 않 습 니 다.color 값 이 true 라면 출력 형식 은 ANSI 색상 으로 인 코딩 되 며 터미널 에 더 예 쁜 효 과 를 표시 하 는 데 사 용 됩 니 다.
특히 util. inspect 는 대상 을 문자열 로 간단하게 바 꾸 지 않 고 이 대상 이 toString 방법 을 정의 하 더 라 도 호출 되 지 않 는 다 는 점 을 지적 해 야 한다.
varutil = require('util'); 

functionPerson() { 

    this.name = 'byvoid'; 

    this.toString = function() { 

    return this.name; 

    }; 

} 

varobj = newPerson(); 

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([])

  // true

util.isArray(new Array)

  // true

util.isArray({})

 // false

util.isRegExp(object)
주어진 인자 'object' 가 정규 표현 식 이 라면 true 를 되 돌려 줍 니 다. 그렇지 않 으 면 false 를 되 돌려 줍 니 다.
var util = require('util');



util.isRegExp(/some regexp/)

  // true

util.isRegExp(new RegExp('another regexp'))

  // true

util.isRegExp({})

  // false

util.isDate(object)
주어진 인자 'object' 가 날짜 가 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(object)
주어진 인자 'object' 가 잘못된 대상 이 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

좋은 웹페이지 즐겨찾기