네임스페이스 는 프로젝트나 라이브러리에 대한 전역 개체 를 만든 다음 해당 전역 변수 에 모든 기능을 추가하여 생성됩니다. 프로그램에서 전역변수의 수를 줄여 하나의 전역변수를 구현함으로써 함수, 객체, 기타 변수가 많아도 전역오염을 일으키지 않고, 이름 충돌 등의 문제도 피할 수 있습니다
하지만, 다른 파일 네임스페이스에 attributes를 추가할 때는 먼저 네임스페이스가 이미 존재하는지 확인해야 하며 동시에 기존 네임스페이스에 손상을 주지 않아야 합니다. 이는 비파괴적인 네임스페이스 기능을 통해 달성할 수 있습니다.
코드는 다음과 같습니다.
var KUI = KUI || {}; KUI.utils = KUI.utils || {}; KUI.utils.namespace = function(ns){ var parts = ns.split("."), object = KUI, i, len; if(parts[0] === "KUI"){ parts = parts.slice(1); } for(i = 0, len = parts.length; i < len; i+=1){ if(!object[parts[i]]){ object[parts[i]] = {}; } object = object[parts[i]]; } return object; };
사용법:
코드는 다음과 같습니다.
KUI.utils.namespace("KUI.common"); KUI.utils.namespace("KUI.common.testing"); KUI.utils.namespace("KUI.modules.function.plugins"); KUI.utils.namespace("format");
위 이후에 KUI가 무엇인지 살펴보세요.
코드는 다음과 같습니다.
{ "utils": {}, "common": { "testing": {} }, "modules": { "function": { "plugins": {} } }, "format": {} }
이름 공간 모드의 단점
1. 긴 문자를 입력해야 하고 구문 분석 시간이 더 길어집니다.
2. 단일 전역 변수에 대한 종속성, 즉 모든 코드가 전역 인스턴스를 수정할 수 있습니다. 다른 코드는 수정된 인스턴스를 가져옵니다.
위 내용은 자바스크립트 네임스페이스 패턴 코드 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!