2012-03-20 1 views
1

자바 스크립트에서이 관용구/패턴의 이름이 있습니까? 약 10 개의 내부 함수와 10 개의 변수를 가진 함수로, 내부 함수와 변수의 하위 선택을 반환하는 객체 리터럴을 반환합니다. 예 :자바 스크립트에서 함수의 일부를 반환

function myFunction() { 
    var myVar1; 
    var myVar2; 
    var myVar3; 
    ... 
    ... 
    function myInnerFunction1() { 
     ... 
    } 

    function myInnerFunction2() { 
     ... 
    } 

    function myInnerFunction3() { 
    } 

    var that = { 
     inner1: myInnerFunction1, 
     inner2: myInnerFunction2, 
     var1: myVar1 
    } 
    return that; 
} 

답변

4

"모듈 패턴"및/또는 "네임 스페이스 만들기"라고합니다. 그것은 당신이 당신의 물건 (래퍼 함수에 대한 호출의 실행 컨텍스트, 예제에서는 myFunction)에 대한 사적인 범위를 가지며 공개적으로 액세스 할 수 있도록하려는 객체 만 갖는 객체를 반환합니다. 그러한 것들 (예를 들어, myInnerFunction1)은 래퍼 함수 내에서 개인 정보에 접근 할 수 있지만 결과 객체를 사용하는 것은 아무것도하지 않습니다.

모듈 패턴에서 직접 노출해야하는 공개 물이없는 경우 (예 : 코드가 완전히 자체 포함되어 있고 이벤트 처리기를 설정하는 등) 아무 것도 내보낼 수 없습니다.

+0

모듈 패턴에 긴 수명! – fcalderan

+0

감사합니다. 모듈 패턴에서 모듈이 즉시 호출되는지 확인해야합니다 (예 :}()); 결국? 여기에 나와 있듯이 http://addyosmani.com/largescalejavascript/ – dublintech

+1

@dublintech : * 뭔가 *가 함수를 호출해야합니다. 그렇지 않으면 함수의 코드가 실행되지 않습니다! :-) 일반적으로 사용자는 자신을 호출합니다 (래퍼 함수는 일반적으로 익명이며 끝에()가 있습니다).하지만 다른 호출이 필요할 수 있습니다 (DOM 준비가 된 콜백 함수 인 것처럼). jQuery의 ['ready' 기능] (http://api.jquery.com/ready)). –