2012-06-11 3 views
0

플러그인을 만들었지 만 "로컬"기능으로 수행 할 작업에 대해 알고 싶습니다. 여기jquery 플러그인의 로컬 메소드 및 네임 스페이스

내가 무슨 짓을했는지 개략적 인 : 당신이 볼 수 있듯이

(function($) { 

var methods = { 
    init : function(options) { 

     // CODE ... 

     // Call of a local function 
     _test(this); 

     // CODE ..... 

    }, 
    destroy : function() {  
     // CODE ..... 
     _test(this); 
     // CODE ..... 
    } 
    }; 

    function _test(container) { 
     // My code : example : 
     $(container).append("<div id='myplugin'></div>"); 
    } 

$.fn.myplugin = function(method) { 

    if (methods[method]) { 
     return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); 
    } 
    else if (typeof method === 'object' || ! method) { 
     return methods.init.apply(this, arguments); 
    } 
    else { 
     $.error('Method ' + method + ' does not exist on jQuery.myplugin'); 
    }  

    }; 

})(jQuery); 

, 내가 직접 방법의 기능이 아니라 다른 _functions에 코드를 삽입하지 않습니다. _functions는 플러그인의 로컬 또는 개인 기능으로 간주 될 수 있습니까? 나는 플러그인 외부에서 호출하는 것이 성공하지 못하므로 개인 함수로 간주 될 수 있습니다.

메소드 객체의 함수에 직접 코드를 넣어야합니까? 몇 가지 메서드에서 사용할 함수를 선언하는 방법은 무엇입니까?

그리고 네임 스페이스는 어떻습니까? 정말로 이해하지 마라.

감사합니다.

답변

0

메서드 개체의 모든 메서드를 노출하고 있기 때문에 해당 개체의 일부는 개인이 아니기 때문에 그러나 다른 함수 내에서 선언 된 함수는 선언 함수로 범위가 지정되므로 함수를 액세스 가능하게 만들지 않으면 private이됩니다.

+0

나는 모든 것을 이해하지 못합니다. – bastien

+0

@bastien 어떤 부분을 이해하지 못합니까? –

+0

함수를 선언하는 함수는 private이라는 것을 알고 있습니다. 내 메소드 객체의 메티 드는 내 웹 페이지의 코드에서 호출되기 위해 public입니다. 그러나 메소드 객체의 메소드에서 호출하는 함수가 비공개가 아닌 이유를 이해할 수 없습니다 ... 플러그인에서 외부로 직접 호출하는 것은 불가능하다고 생각합니다. 또한, 메소드 객체의 둘 이상의 메소드에서 함수를 사용하려면 솔루션은 무엇입니까? – bastien