javascript 의 클래스 정의 및 사용 {전재}

본문 전재:http://www.cnblogs.com/klesh/archive/2007/09/28/understanding-classs-definition-in-javascript.html
자바 script 에서 클래스 를 정의 하 는 방법 에 대해 인터넷 에서 많은 글 을 찾 을 수 있 습 니 다.말 을 시작 하기 전에 정의 류 의 두 가지 기본 방식 을 살 펴 보 자.
(1) 함수 구조 유형 을 이용한다.
4. 567913. (2) 원형 prototype 을 이용 합 니 다.
function Foo(text, url) {
	this.text = text;
	this.url = url;
	
	this.render = function() {
		document.write('' + this.text + '');
	}
}

코드 는 결코 복잡 하지 않 아서 대부분의 사람들 이 다 본 후에 어떻게 사용 하 는 지 알 게 될 것 이 라 고 믿는다.그러나 나 는 이런 정의 방식 을 처음 봤 을 때 이상 하 게 생각 했다. 오 랜 시간 동안 알 고 있 었 지만 그 이 유 를 몰 랐 다.만약 당신 이 나 와 같은 곤 혹 스 러 움 이 있다 면, 아마도 나의 약간의 경험 을 나 눌 수 있 을 것 입 니 다.
정 의 된 유형 을 어떻게 사용 하 는 지,
function Bar(text, url) {
	this.text = text;
	this.url = url;
}
Bar.prototype = {
	render : function() {
		document.write('' + this.text + '');
	}
}

많은 대상 언어 (예 를 들 어 C \ #) 의 사용 방법 과 마찬가지 로 new 키 워드 를 사용 하여 예화 류 를 사용 하고 인 스 턴 스 of 로 해당 유형 인지 아 닌 지 를 테스트 할 때 예상 되 는 답 을 얻 을 수 있 습 니 다.두 가지 서로 다른 방식 으로 정 의 된 유형 인 Foo 와 Bar 는 대부분 다 르 지 않다.
그러나 이들 은 원리 적 으로 완전히 다르다. 방식 1 은 구조 함수 에서 동적 으로 클래스 를 만 드 는 구성원 이다. 이것 은 모든 Foo 의 인 스 턴 스 를 의미 하 는 render 방법 은 사실은 두 개의 완전히 독립 된 함수 이다.방식 2 는 프로 토 타 입 프로 토 타 입 방식 으로 공유 멤버 와 클래스 의 인 스 턴 스 를 연결 하기 때문에 모든 Bar 인 스 턴 스 의 render 방법 은 같은 방법 을 가리 키 며 정적 입 니 다.다음 코드 를 보십시오.
var a = new Foo('Link A', 'http://www.cnblogs.com');
var b = new Bar('Link B', 'http://www.csdn.net');
a.render();
b.render();

Foo 는 실례 화 된 후에 독립 된 개체 로 그 어떠한 변경 도 원래 의 유형 정의 에 영향 을 주지 않 고 다른 실례 에 영향 을 주지 않 는 다.한편, Bar 는 다 릅 니 다. 모든 인 스 턴 스 는 prototype 의 영향 을 받 습 니 다. Bar. prototype 에 대한 수정 이나 확장 을 통 해 이미 정례 화 된 인 스 턴 스 를 포함 한 모든 인 스 턴 스 에 영향 을 줄 수 있 습 니 다.돌 이 켜 보면 Foo 는 멤버, 특히 멤버 함 수 는 동적 으로 만 들 어 졌 기 때문에 패 키 지 를 닫 으 면 대상 을 대상 으로 하 는 '개인 멤버' 를 모 의 할 수 있다 는 점 에서 내용 이 길 어 질 것 입 니 다. 잠시 후에 시간 이 있 으 면 다시 공유 하 겠 습 니 다.
두 가지 방식 은 각각 특징 이 있다.그러나 마지막 으로 엄 밀 히 말 하면 어떤 방식 이 든 '아 날로 그 사용자 정의 유형' 이 라 고 할 수 밖 에 없다. 대상 을 바탕 으로 하 는 자바 script 에 서 는 사실상 원생 의 '사용자 정의 유형' 이라는 개념 이 없 기 때문이다.
마지막 으로 자바 script 에서 사용자 정의 클래스 를 모 의 하 는 일반적인 사용 방식 2 를 추천 합 니 다. 속도 가 빠 르 고 prototype 을 통 해 유형 을 수정 할 수 있 습 니 다.
'사유 멤버' 가 필요 하지 않 는 한...
개인 구성원 을 모 의 하기 위해 서 는 폐쇄 적 인 가방 이 필요 하지 않 는 다.
선과 사체 부분 을 삭제 하고 목 야호 동지의 의견 에 따라 수정한다.

좋은 웹페이지 즐겨찾기