JavaScript
callback.call()에 대해서
altvirus
2011. 11. 10. 16:50
새로 만드는 메서드(함수)의 매개변수로 콜백함수를 받을때, 함수 정의내부에서는 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
ㄹㄹㄹ