4
메서드가 적은 개체가 있는데 그 중 하나를 이벤트 처리기로 바인딩하려고하지만 동일한 개체의 다른 메서드를 사용합니다. 콜백 함수에서 컨텍스트를 보존하는 가장 좋은 방법은 무엇입니까? 이 목적을 위해 jQuery UI core에서 볼 수 있듯이 일반적으로 $ .proxy 메서드가 사용되었습니다. 솔직하게 말하면이 방법이 마음에 들지 않지만 매우 명확하지 않습니다.컨텍스트를 콜백 함수에 전달하는 최선의 방법
의견이 있으십니까? 미리 감사드립니다!
var obj = {
someMethod: function(){...},
callback : function(){
...
this.someMethod(); // or this.someMethod.call(...)
...
},
};
// wrong
$.bind(elm, obj.callback);
// using $.proxy
$.bind(elm, $.proxy(obj.callback, obj));
다른 방법은 클로저를 사용하는 것입니다. 그런 다음 객체가 아닌 코드를 구성하는 다른 방법을 선택해야합니다. – Roman