2012-02-08 4 views
2

나는 내가이이 상황 (라파엘 라이브러리를 사용)가 :이벤트 핸들러 함수에 인수를 전달하고 'this'참조를 사용하는 방법은 무엇입니까?

rect.click(doSomething); 

그리고 doSomething() 내에서, 나는 경계 상자의 크기를 얻을 수 있습니다 :

var boxSize = this.getBBox(); 

문제는 어떤 경우입니다 I doSomething에 인수를 전달하고 싶습니까? 그렇게하면 어떤 이유로 this 참조가 중단됩니다. 어떻게 인수를 전달하고 여전히 this을 사용할 수 있습니까?

답변

4

당신은 다른 함수에서 리스너를 포장하고, 주어진 매개 변수로 함수를 호출 .call()을 사용할 수 있습니다

var foo = 123, bar = 'blabla'; 
rect.click(function(event) { 
    return doSomething.call(this, event, foo, bar); 
}); 
+0

매우 편리합니다, 심지어 (.call'에 대해 알고하지 않았다)', 감사합니다! – CaptSaltyJack

관련 문제