나는 인터넷에 대한 해답을 찾았으므로 아무 소용이 없습니다. 나는 대답이 아마도 매우 간단하다고 느낀다. 그러나 그것은 나를 빠지게하고 있었다."Private"jQuery Plugin
jQuery 플러그인을 작성하고 모든 우수 사례를 따르고 있습니다. 내 플러그인을 foo라고하고, 다음과 같은 표준 플러그인 정의가 있다고 가정 해 보겠습니다.
(function($){
$.fn.foo = function() {
this.append('<p>I'm doing stuff!</p>');
}
})(jQuery);
꽤 기본적인 지금까지. 이제 내부 기능을 bar라는 함수에 캡슐화하려는 기능이 있다고 가정 해 보겠습니다. 여기 캐치, 그래도입니다 :
(function($){
/* this is bad: it clutters up the namespace, and exposes implementation details:
$.fn.bar = function(text) {
this.append('<p>'+text'</p>');
}
*/
$.fn.foo = function() {
this.append('<p>I'm doing stuff!</p>').bar('bar does something else!');
}
})(jQuery);
은 어떻게 선언 할 수 있습니다 : 나는 즉 등 체인을 이용할 수 있도록 내가 jQuery 플러그인처럼 호출 할,이 같이 사용할 수 있도록하려면 bar를 사용하여 jQuery 플러그인처럼 호출 할 수 있지만 플러그인 범위 밖에서는 사용할 수 없습니까?
나는 Javascript의 적용 메소드를 사용하여 혼란 스러웠다. 그런 종류의 작업이 있었지만 clunky 였고 jQuery 객체를 매개 변수로 사용하여 호출하는 것보다 낫다.
나는 간단한 솔루션이 있다고 확신합니다. 누구입니까?
클로저를 사용하여 개인 방법을 래핑 할 수 있습니다. 즉 모듈 식 디자인으로 플러그인을 만드십시오. – PSL