2014-12-20 5 views
0

익명 함수와 관련하여 IIFE가 작동하는 방식을 정확하게 이해하려고 노력했습니다. 나는 글로벌 변수 충돌을 피하는 데 그들의 사용을 이해하고 그들 자신의 로컬 스코프를 생성한다.자바 스크립트 IIFE 익명 함수

이와 같은 익명의 함수를 호출하면 어떻게 될지 명확하지 않습니다.

(function() { 
    var myVar = 'foo'; 
    } 
)() 

즉시 호출되고 전역 범위에서 사용할 수없는 경우 사용할 수있는 위치는 어디입니까? myVar에 어떻게 접근합니까?

+2

, 인생의 작품을 닫을 수 있습니다 잘 보호 된 싱글 톤으로 – InferOn

+0

위의 범위에서 'window'또는 다른 것의 속성으로 지정하지 않으면 액세스하지 않습니다. –

+0

호출 괄호에 (창)을 전달한다는 의미입니까? – byrdr

답변

0

이 표기법은 모듈 패턴으로 알려져있다

var myModule = function() { 
     var privateVar = "foo"; 
     function privateMethod() { 
     return "bar"; 

     } 

     return { 
     publicMethod : function(){ 
      return 'foo'; 
     } 
     } 
} 

완전히 전역에서 분리 된이 모듈을 만들려면, 우리는 인생에서

당신이 myVar에에 액세스 할 수 없습니다
(function (setUp) { 
     var privateVar = setUp; 
     function privateMethod() { 
     return "bar"; 

     } 

     return { 
     publicMethod : function(){ 
      return 'foo'; 
     } 
     } 
})(window.setUp);