JavaScript

callback.call()에 대해서

altvirus 2011. 11. 10. 16:50
새로 만드는 메서드(함수)의 매개변수로 콜백함수를 받을때, 함수 정의내부에서는 callback.call로 호출한다. 이때 call의 첫번째는 현재의 되는 객체가 들어가고, 2번째 부터는 매개변수를 나열하면 된다.

예를 들면 다음과 같다.

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

ㄹㄹㄹ