首頁  >  文章  >  web前端  >  Javascript 命名空間模式程式碼範例

Javascript 命名空間模式程式碼範例

怪我咯
怪我咯原創
2017-07-07 15:08:271125瀏覽

命名空間是透過為專案或庫建立一個全域物件,然後將所有功能加入到該全域變數。透過減少程式中全域變數的數量,實現單全域變量,從而在具有大量函數、物件和其他變數的情況下不會造成全域污染,同時也避免了命名衝突等問題

然而,在不同的檔案中為一個命名空間加上屬性的時候,首先要保證這個命名空間是已經存在的,同時不對現有的命名空間造成任何破壞。可以透過非破壞性的命名空間函數實作:

程式碼如下:

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.對單全域變數的依賴性,即任何程式碼都可以修改該全域實例,其他程式碼將獲得​​修改後的實例。

以上是Javascript 命名空間模式程式碼範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn