새로 만드는 메서드(함수)의 매개변수로 콜백함수를 받을때, 함수 정의내부에서는 callback.call로 호출한다. 이때 call의 첫번째는 현재의 되는 객체가 들어가고, 2번째 부터는 매개변수를 나열하면 된다.
예를 들면 다음과 같다.
이렇게 하면 Joe라고 찍힌다.
눈여겨 볼 곳은 callback.call(this) 여기인데, 이 this는 Thing객체를 의미하고, 이는 foo() 내에서 this로 참조 할 수 있다. 그냥 직관적으로 말한다면, 콜백함수(여기서는 foo()) 안에서 this로 쓰일 객체를 첫번째 인자로 넘긴다는 것이다.
http://stackoverflow.com/questions/2190850/javascript-create-custom-callback
ㄹㄹㄹ
예를 들면 다음과 같다.
function Thing(name) {
this.name = name;
}
Thing.prototype.doSomething = function(callback) {
callback.call(this, v1, v2);
}
function foo() {
alert(this.name+v1+v2);
}
var t = new Thing('Joe');
t.doSomething(foo);
이렇게 하면 Joe라고 찍힌다.
눈여겨 볼 곳은 callback.call(this) 여기인데, 이 this는 Thing객체를 의미하고, 이는 foo() 내에서 this로 참조 할 수 있다. 그냥 직관적으로 말한다면, 콜백함수(여기서는 foo()) 안에서 this로 쓰일 객체를 첫번째 인자로 넘긴다는 것이다.
http://stackoverflow.com/questions/2190850/javascript-create-custom-callback
ㄹㄹㄹ
'JavaScript' 카테고리의 다른 글
| HTML5 File Drag & Drop API (0) | 2013.10.30 |
|---|---|
| Simple JavaScript Inheritance (2) | 2012.01.02 |
| JSONP로 데이타 처리하기. (1) | 2011.12.12 |



