//定义顶块命名空间
if (!window['BJE']) {
window['BJE'] = {};
}
/**
* 包列表 -- 用于调试使用
* @type {}
*/
BJE.packageList = [];
/**
* 定义包命名空间
*
* @packageNames 包名
* BJE.package("bje.css.sprite",'bje.ext');
*/
BJE.package = function() {
/**
* 验证包是否存在
* 从前往后验证,前置包节点不存在,返回false,所有包节点匹配返回true
* 验证的目的,在于不重复创建
*/
function isPackageExist(packageName){
var nsArr = packageName.split(".");
var ns = '' ,noDefine = false ;
var tpl = 'if (typeof #ns# == "undefined") noDefine = true ;';
for(k in nsArr){
ns += nsArr[k] + "." ;
// 要替换最后的.号
//eval('if (typeof ' + ns.replace(/.$/gi, "") + ' == "undefined") noDefine = true ;');
eval(tpl.replace(/#ns#/gi,ns.replace(/.$/gi, "")));
if (noDefine)
return false ;
}
BJE.packageList.push(packageName) ;
return true ;
}
/**
* 创建包 -- 传入包名
*/
function create(packageName){
if (!isPackageExist(packageName)){
//do something ...
var o = null, i, j, d, rt;
d = packageName.split(".");
rt = d[0];
eval('if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = '
+ rt + ';');
for (j = 1; j < d.length; ++j) {
o[d[j]] = o[d[j]] || {};
o = o[d[j]];
}
BJE.packageList.push(packageName) ;
}
}
function remove(packageName){
if (isPackageExist(packageName)){
//do something ...
}
}
var packageNames = arguments;
for (i = 0; i < packageNames.length; ++i) {
//var packageNameArray = packageNames[i].split(".");
if (!isPackageExist(packageNames[i]))
create(packageNames[i]);
}
}
还是有些不完整,测试如下"
BJE.package("BJE.css.sprite", 'BJE.ext', 'BJE.ext.mail');alert(BJE.packageList);
转载请注明原文地址: https://ju.6miu.com/read-1125727.html