国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Javascript 命名空間模式

2024-05-06 15:53:56
字體:
供稿:網(wǎng)友
命名空間是通過為項目或庫創(chuàng)建一個全局對象,然后將所有功能添加到該全局變量中。通過減少程序中全局變量的數(shù)量,實現(xiàn)單全局變量,從而在具有大量函數(shù)、對象和其他變量的情況下不會造成全局污染,同時也避免了命名沖突等問題

然而,在不同的文件中給一個命名空間添加屬性的時候,首先要保證這個命名空間是已經(jīng)存在的,同時不對已有的命名空間造成任何破壞。可以通過非破壞性的命名空間函數(shù)實現(xiàn):

復(fù)制代碼 代碼如下:


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;
};

用法:

復(fù)制代碼 代碼如下:


KUI.utils.namespace("KUI.common");
KUI.utils.namespace("KUI.common.testing");
KUI.utils.namespace("KUI.modules.function.plugins");
KUI.utils.namespace("format");

看一下經(jīng)過上述后KUI都有什么:

復(fù)制代碼 代碼如下:


{
    "utils": {},
    "common": {
        "testing": {}
    },
    "modules": {
        "function": {
            "plugins": {}
        }
    },
    "format": {}
}

命名空間模式的缺點

1.需要輸入更長的字符,并且需要更長的解析時間;
2.對單全局變量的依賴性,即任何代碼都可以修改該全局實例,其他代碼將獲得修改后的實例。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 满城县| 麻城市| 盐边县| 峨山| 湖州市| 洛川县| 健康| 和政县| 仁化县| 惠州市| 伊通| 扶风县| 大埔县| 曲靖市| 南溪县| 安康市| 双辽市| 塘沽区| 平乡县| 巴青县| 闽清县| 正镶白旗| 永年县| 临沧市| 大渡口区| 古交市| 宁化县| 青州市| 玉门市| 原平市| 准格尔旗| 赤城县| 连城县| 正定县| 维西| 万荣县| 怀来县| 平定县| 巴楚县| 米脂县| 通城县|