Javascript 모드 인 스 턴 스 관찰자 모드
http://www.cnblogs.com/Terrylee/archive/2006/10/23/Observer_Pattern.html
제 가 이 모델 에 대한 이 해 를 말 해 보 겠 습 니 다. 그 사상 핵심 은 모든 관찰 대상 이 대상 데이터 의 변화 에 따라 바 뀌 고 관찰 대상 은 똑 같은 변화 행 위 를 통 해 제약 을 받 아야 합 니 다. 이 제약 은 관찰 대상 이 관찰 기 에 제공 하 는 통 일 된 인터페이스 입 니 다.관찰 기 는 데 이 터 를 바 꾸 는 행 위 를 개발 할 것 이다.
JS 는 약 한 유형의 스 크 립 트 입 니 다. 많은 것 을 약속 해 야 합 니 다.. NET 처럼 인터페이스의 제약 이 있 지 않 습 니 다. 쓸데없는 말 은 하지 않 고 우 리 는 인 스 턴 스 를 직접 봅 니 다.
관찰자 실례
var ObserverObj = { /**//* */
FirstName: "Max",
LastName: "Gan",
Id: 1
}
var ObserverManager = { /**//* */
Observers:[], /**//* */
AddObserver: function(item){/**//* */
this.Observers.push(item);
},
Change: function(obj){ /**//* */
for(var item in obj){
ObserverObj[item] = obj[item];
}//
for(var i = 0,len = this.Observers.length; i < len; i++){
var item = this.Observers[i];
item.Display(); // , Display;
}
}
}
var Header = function(){ /**//* Header*/
this.Display = function(){
alert(ObserverObj.FirstName);
}
}
var Content = function(){ /**//* Content*/
this.Display = function(){
alert(ObserverObj.LastName);
}
}
var Foot = function(){ /**//* Foot*/
this.Display = function(){
alert(ObserverObj.Id);
}
}
위의 예 는 Observer Manager 가 바 인 딩 방법 (AddObserver) 만 제공 하고 다른 바 인 딩 을 취소 하 는 것 과 같은 코드 기술 을 제공 합 니 다. 생각해 보면 알 수 있 습 니 다. 사실 이 코드 들 의 최종 목적 은 Observer 데 이 터 를 바 꾸 는 것 입 니 다. 다른 대상 들 도 데이터 의 변화 에 따라 해당 하 는 응답 을 할 것 입 니 다. OK, 지금 우 리 는 그들 을 연결 합 니 다.
/*** ***/
ObserverManager.AddObserver(new Header());
ObserverManager.AddObserver(new Content());
ObserverManager.AddObserver(new Foot());
마지막 으로 저희 가 쓰 면 어떻게 쓰 죠?(저능 한 문제.. 하하) 예 를 들 어 보 자.
사용 방법
변경 First Name
LastName 변경
변경 Id
나 는 모든 예 를 첨부 했 으 니, 관심 있 는 친 구 는 다운로드 해서 볼 수 있다.
Javascript 관찰자 모드. rar
한 사람 이 얼마나 멀리 갈 수 있 느 냐 는 누구 와 동행 하 느 냐 에 달 려 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.