Node. js 상용 도구 util
8039 단어 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express + AWS S3 이미지 업로드하기웹 사이트 및 모바일 애플리케이션 등에서 원하는 양의 데이터를 저장하고 보호할 수 있다. 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공한다. AWS S3 에 저장된 객체에 대한 컨테이너...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.