javascript 디자인 모델 소개 (7) 온당 한 구조 함수 모델

더 글 러 스 크 록 포드 (Douglas Crockford) 는 자 바스 크 립 트 의 온당 한 대상 (durable objects) 이라는 개념 을 발명 했다.온당 한 대상 이란 공공 속성 이 없고 그 방법 도 this 의 대상 을 인용 하지 않 는 다 는 것 을 말한다.온당 한 대상 은 일부 안전 한 환경 에서 (이러한 환경 에서 this 와 new 를 사용 하 는 것 을 금지 합 니 다) 또는 데이터 가 다른 프로그램 (예 를 들 어 Mashup 프로그램) 에 의 해 변경 되 는 것 을 방지 할 때 사용 하기에 가장 적합 합 니 다.온당 한 구조 함 수 는 기생 구조 함수 와 유사 한 모델 을 따 르 지만 두 가지 차이 가 있다.
하 나 는 새로 만 든 대상 의 인 스 턴 스 방법 으로 this 를 참조 하지 않 습 니 다.
둘 째 는 new 연산 자 를 사용 하지 않 고 구조 함 수 를 호출 하 는 것 이다.
온당 한 구조 함수 의 요구 에 따라 앞의 Person 구조 함 수 를 다음 과 같이 다시 쓸 수 있다.
function Person(name, age, job){ 
 	//         
 	var o = new Object(); 
 	//               
	
 	//     
 	o.sayName = function(){ 
 		alert(name); 
 	};
 	//     
 	return o; 
} 

이 모드 로 만 든 대상 에 서 는 sayName () 방법 을 사용 하 는 것 외 에 name 의 값 에 접근 할 방법 이 없습니다.아래 와 같이 안정 적 인 Person 구조 함 수 를 사용 할 수 있 습 니 다.
var friend = Person("Nicholas", 29, "Software Engineer"); 
friend.sayName(); //"Nicholas" 

이렇게 하면 변수 friend 에 저 장 된 것 은 온당 한 대상 이 며, sayName () 방법 을 호출 하 는 것 외 에 데이터 구성원 에 접근 할 수 있 는 다른 방법 이 없습니다.다른 코드 가 이 대상 에 게 방법 이나 데이터 구성원 을 추가 하 더 라 도 구조 함수 에 들 어 오 는 원본 데 이 터 를 방문 하 는 다른 방법 은 없 을 것 입 니 다.안정 적 인 구조 함수 모델 이 제공 하 는 이러한 안전성 은 특정한 안전 집행 환경 에 매우 적합 하 다.
기생 구조 함수 모델 과 유사 하 며, 안정 적 인 구조 함수 모델 로 만 든 대상 과 구조 함수 사이 에 도 아무런 관계 가 없 기 때문에 인 스 턴 스 of 조작 부 호 는 이러한 대상 에 도 의미 가 없다.

좋은 웹페이지 즐겨찾기