Javascript 命名空間模式
然而,在不同的文件中給一個(gè)命名空間添加屬性的時(shí)候,首先要保證這個(gè)命名空間是已經(jīng)存在的,同時(shí)不對(duì)已有的命名空間造成任何破壞??梢酝ㄟ^(guò)非破壞性的命名空間函數(shù)實(shí)現(xiàn):
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");
看一下經(jīng)過(guò)上述后KUI都有什么:
{
"utils": {},
"common": {
"testing": {}
},
"modules": {
"function": {
"plugins": {}
}
},
"format": {}
}
命名空間模式的缺點(diǎn)
1.需要輸入更長(zhǎng)的字符,并且需要更長(zhǎng)的解析時(shí)間;
2.對(duì)單全局變量的依賴性,即任何代碼都可以修改該全局實(shí)例,其他代碼將獲得修改后的實(shí)例。
相關(guān)文章
layui之table checkbox初始化時(shí)選中對(duì)應(yīng)選項(xiàng)的方法
今天小編就為大家分享一篇layui之table checkbox初始化時(shí)選中對(duì)應(yīng)選項(xiàng)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09通過(guò)微信公眾平臺(tái)獲取公眾號(hào)文章的方法示例
這篇文章主要介紹了通過(guò)微信公眾平臺(tái)獲取公眾號(hào)文章的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12ExtJs使用自定義插件動(dòng)態(tài)保存表頭配置(隱藏或顯示)
這篇文章主要介紹了ExtJs使用自定義插件動(dòng)態(tài)保存表頭配置(隱藏或顯示) ,需要的朋友可以參考下2018-09-09uniapp項(xiàng)目引入?js文件以及全局使用方法
這篇文章主要給大家介紹了關(guān)于uniapp項(xiàng)目引入?js文件以及全局使用方法的相關(guān)資料,在Uniapp中引入JS文件是一項(xiàng)常見的操作,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12