>  기사  >  웹 프론트엔드  >  자바스크립트 네임스페이스 패턴 코드 예

자바스크립트 네임스페이스 패턴 코드 예

怪我咯
怪我咯원래의
2017-07-07 15:08:271136검색

네임스페이스 는 프로젝트나 라이브러리에 대한 전역 개체 를 만든 다음 해당 전역 변수 에 모든 기능을 추가하여 생성됩니다. 프로그램에서 전역변수의 수를 줄여 하나의 전역변수를 구현함으로써 함수, 객체, 기타 변수가 많아도 전역오염을 일으키지 않고, 이름 충돌 등의 문제도 피할 수 있습니다

하지만, 다른 파일 네임스페이스에 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.