2012-02-23 7 views
2

최근 익명 함수를 큰 방법으로 사용하고 있으며 JS 코드베이스를 재정렬하려고 시도하면서 이것이 가능한지 궁금합니다.jQuery 익명 함수 - 중첩 함수

(function (listLoad, $, undefined) { 
    listLoad.create = function(data) 
    { 
     this.init = function(data) 
     { 
     } 
    } 
} (window.listLoad = window.listLoad || {}, jQuery)); 

은 내가 무엇을 찾고 있어요 것은 분명 예 : "데이터 맵"등, 모든 페이지를 초기화하는 기능을 초기화하기 것이다하는대로, 내 "listLoad"페이지 기능의 번호를 가지고 있습니다.

내 주요 질문은이 .init 함수에 어떻게 액세스합니까? 개인적인 범위라고 생각합니다. 나는 시도했다 :

listLoad.create.init = function(data) 

create.init = function(data) 

심지어 init = function(data)

모두 어떤 성공하는 방법이 작업을 수행하는

listLoad.create.init(); 

를 작성할 때? 제 시나리오에 대해 잘못된 길을 가고 있다고 느낀다면 건축에 대한 제안을 듣는 것보다 기쁘게 생각합니다.

답변

3

실제로 익명 기능에 대한 구문이 완전하지 않습니다.

먼저이 종료 괄호로 annonymous 블록을 실행해야합니다

var listLoad = {}; 

(function (x) { 
    x.create = { 
     init: function(data) { 
      console.log('plop'); 
     } 
    } 
})(listLoad); 


listLoad.create.init() 

이 제의에 민감한 반응에 풍덩 콘솔에 로그인 나타날 수 :

(function (...) { 
    ... 
})(...) 

를 블록 내부 코드는이 방식을 개선 할 수 .

+0

놀랍습니다. 감사합니다. 참고로 내 anon 함수가 실행 중이 었으나 구문을 다음과 같이 변경해야했습니다. listLoad.create = {init : function (data) {}} 감사합니다. –