Namespacing Pattern
객체를 생성하는 패턴들로 Name space를 사용하게 되면 필요로 하는 전역 변수의 개수를 줄일 수 있습니다.
객체 리터럴 네임스페이싱(Object Literal Namespacing)
가장 기본적인 네임스페이스 패턴으로 하나의 전역 객체를 선언 후 함수, 객체, 변수를 여기에 추가하는 방식입니다.
단, namespace를 사용하고 있는 객체는 this를 사용해서 참조하면 안된다.
var APP = {};APP.function1 = function() {}APP.function2 = function() {}// 변수를 추가하는 경우APP.variable = 1;// 객체 컨테이너를 추가하는 경우APP.modules = {};APP.modules.module1 = {};APP.modules.module1.data = 1;
범용 네임스페이스 함수
이 방식은 재정의를 막기 위해 미리 선언되었는지 확인하고 정의해주는 함수를 말합니다.
APP.namespace = function(string) {// string 문자열을 '.' 를 기준으로 분리var parts = ns_string.split('.'),parent = APP,i;parts = parts.slice(1);for(i=0 ; i<parts.length ; i++) {if(typeof parent[parts[i]] == "undefined") {parent = parent[parts[i]];return parent;}
'Language > Javascript' 카테고리의 다른 글
다중 플래그값을 위한 비트 연산 (0) | 2017.12.30 |
---|---|
promise - 2 [Promise 사용 시 주의할 것] (0) | 2017.07.28 |
promise - 1 [then, catch, resolve, reject] (0) | 2017.07.28 |
closure (0) | 2017.07.28 |
scope - 3 [변수 숨기기] (0) | 2017.07.28 |