ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript 名前空間パターンのコード例

Javascript 名前空間パターンのコード例

怪我咯
怪我咯オリジナル
2017-07-07 15:08:271136ブラウズ

名前空間 は、プロジェクトまたはライブラリのグローバル オブジェクト を作成し、すべての機能をそのグローバル 変数 に追加することによって作成されます。プログラム内のグローバル変数の数を減らすことで、単一のグローバル変数が実装されるため、関数、オブジェクト、その他の変数が多数ある場合でもグローバル汚染が発生せず、名前の競合などの問題も回避されます

異なるファイル 属性を名前空間に追加するときは、まずその名前空間がすでに存在していることを確認する必要があり、同時に既存の名前空間に損傷を与えないようにする必要があります。これは、非破壊的な名前空間関数を通じて実現できます:

コードは次のとおりです:

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": {}
}

Name 空間モードの欠点

1. 長い文字を入力する必要があり、解析時間が長くなります。つまり、どのコードでもグローバル インスタンスを変更できる。他のコードは変更されたインスタンスを取得します。

以上がJavascript 名前空間パターンのコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。