이 자바 스크립트에서 네임 스페이스를 정의 (유성)에 대한 더 나은 :
MyNamespace = (typeof MyNamespace === 'undefined')? {} : MyNamespace;
불행하게도 그것은 추한 괴물 (구문)입니다. 네임 스페이스가 Javascript에서 곧 지원 될 것입니다 (어쩌면 클래스 및 모듈과 함께).
그것은 당신의 변수를 추가보다 당신은 파일의 시작 부분에 배치 할 수 있습니다
사용.
파일 MyNamespace/greeting.js
:
MyNamespace = (typeof MyNamespace === 'undefined')? {} : MyNamespace;
MyNamespace.greeting = 'hello world';
// ...
파일 MyNamespace/myFunction.js
예를 들어
MyNamespace = (typeof MyNamespace === 'undefined')? {} : MyNamespace;
MyNamespace.myFunction = function() {
// ...
}
MyNamespace = {};
잘못 무엇입니까?
요점은 두 개 이상의 파일에 정의 된 네임 스페이스가있는 경우 (즉, Meteor와 같은 환경에서 다중 js 파일로 코드 분할을 시작하면 가능성이 있음을 나타냅니다.) MyNamespace = {};
last에로드 될 파일은 이전 파일에있는 모든 정의를 겹쳐 씁니다.
파일 /client/controllers/HomeController
:
Controllers = {}; // define namespace Controllers
Controllers.HomeController = ...
// ...
파일 /client/controllers/LoginController
: 예를 들어
유성와
Controllers = {}; // define namespace Controllers
Controllers.LoginController = ...
// ...
, LoginController
은 알파벳 순서에 대해 마지막으로로드되고 명령 Controllers = {};
는 HomeController
을 지 웁니다 정의가 손실됩니다.
위의 해결책으로 문제가 해결됩니다.
가능한 [Meteor의 lib/constants.js 파일에서 상수에 액세스하는 방법은 무엇입니까?] (http://stackoverflow.com/questions/26836390/how-can-i-access-constants-in-the -lib-constants-js-file-in-meteor) –