onSelect 특성을 가진 jquery 플러그인이 있다고 가정 해 보겠습니다. 사용자가 해당 함수를 함수로 설정하면 해당 함수가 호출 될 때 this
은 플러그인이 적용된 객체를 참조합니다. 모두 좋은. 하지만, 그런익명 함수를 통해 javascript에서 함수를 호출 할 때 'this'를 유지할 수 있습니까?
// Get whatever the user put in
var extOnSelect = options['onSelect'];
// delete the onSelect attribute
delete options['onSelect'];
// re-add onSelect as an anonymous function that calls my method and the user's
var options = $.extend({
'onSelect': function() { onSelect(); extOnSelect(); }
}, options);
// call the plugin that I am wrapping/injecting extra onSelect code into
$(this).externalPlugin(options);
그것은 내 자신의 onSelect를 코드로 전달됩니다 : 나는 onSelect를에 몇 가지 코드를 삽입하기 위해,이 플러그인을 래핑하는 플러그인을 작성하려는 경우
, 나는 같은 것을 할 사용자가 입력 한 내용을 보존합니다.
유일한 두 가지 문제는 각각 두 개의 함수 내에서 this
이 더 이상 객체를 참조하지 않으며, 이제는 일반 인라인 함수라고 생각합니다.
이 문제를 해결하는 가장 좋은 해결책은 무엇입니까?
감사합니다.이 경우 '인수'는 무엇을 의미합니까? – NibblyPig
'arguments'는 현재의 인수를 포함하는 배열과 같은 객체입니다. 귀하의 경우 - 이벤트 처리기 - 그것은 하나의 항목, [jQuery] 이벤트 개체를 포함합니다. – Bergi
훌륭한 작업 - 이벤트 처리기는 실제로 일부 인수로 트리거되며 사용하기에 멋지게 전달됩니다. 감사! – NibblyPig