2014-12-14 3 views
2

ES6에서 클라이언트 측에서는 함수 외부에 정의 된 항목이 전역 범위를 계속 오염시킬 것으로 추정합니다. ES5에서 나는 보통과 같이, 응용 프로그램 초기화시에 루트 "네임 스페이스 객체"의 종류의 무리를 등록 할 :ES6 모듈 (JavaScript)

다음과 같이 그때 나중에, 내 유형을 참조 할 수
(function (namespace) { 
    function MyConstructor() { 
    } 

    namespace.MyConstructor = MyConstructor; 
}(applicationNamespace)); 

:

var o = new applicationNamespace.MyConstructor(); 

충분히 쉽습니다.

ES6에서 어떻게 동일한 효과를 얻을 수 있습니까? 전 세계적 범위를 오염시키는 것을 막기 위해 IIFE에있는 파일에 모든 것을 감쌀 필요가 있다고 생각합니까?

(function() { 
    function MyConstructor() { 
    } 

    export MyConstructor; // Will this make the constructor function globally visible? 
}()) 

온라인으로 대부분의 예제는 파일의 내용이 인생이 부족 Node.js를위한 것으로 보이지만, 클라이언트 측에 것조차 ES6의 글로벌 스코프의 원인 오염,?

또는 export 키워드가 있으면 범위 지정 동작이 수정됩니까?

마지막으로 어떻게 ES6 모듈을 사용하여 의미 론적 네임 스페이스를 만들 수 있습니까? myapp.utils.MyConstructor과 같은 것?

+0

에 네임 스페이스를 만들려면,'식별자 만의 코드를 사용할 수 있습니다 그'

관련 문제