javascript도 객체지향언어이다. 즉, C++이나 Java에서 사용되는 콜백루팅을 구현할 수 있다.
Callback을 구현하여 사용하면 프로그램 동작중에 서브루틴이 외부에서 구현된 함수를 비동기적으로 호출이 가능해진다.
우선 Callback Event 객체를 만든다.
1
2
3 |
var CallbackEvent=function(){
this.callback_method;
}; |
cs |
그리고 여기선 Caller에서 메서드를 호출하게 Event를 등록하는 객체를 구현한다.
1
2
3
4
5
6 |
var EventRegister=function(event){
this.callbackEvent=event;
this.work=function(){
this.callbackEvent.method();
}
} |
cs |
이제 Callback을 호출하는 method를 구현하여 Event를 등록해보자
1
2
3
4
5
6
7
8
9
10
11 |
var EventApp=function(){
this.execution=function(){
var callbackEvent=new CallbackEvent();
callbackEvent.method=function(){
print('caller로 부터 호출됨');
}
var eventRegister=new EventRegister(callbackEvent);
eventRegister.work();
}
}; |
cs |
이제 사용해 볼 차례
1
2 |
var eventApp=new EventApp();
eventApp.execution(); |
cs |
이렇게하면 외부에서 구현된 Callback Method가 callee(피호출자)에서 caller(호출자)를 호출하게된다.
제작년에 공부한 내용이 메모장에 적혀있길래 간략히 사용법만 올려본다... 문법은 다르지만 java에서도 이러한 패턴으로 구현하면 된다.
'Web > javascript/jQuery' 카테고리의 다른 글
jquey 속성값에 만족하는 element 모두 찾기 (0) | 2015.12.09 |
---|---|
jquery 부모, 자식, 노드 찾기 (0) | 2015.12.09 |
javascript 변수 선언할 땐 var 좀 써주시면 안될까요... (0) | 2015.01.25 |