定义js命名空间
var $package=function(ns){
var defineNamespace=function(root,ns){
ns=ns || "";
ns=ns.replace(/\s/g,"");
if (ns.length == 0) {
return root;
}else {
var nsc = ns.substr(0, 1);
if (nsc != nsc.toLowerCase()) {
throw new Error("命名空间首字母必须小写哦~");
}
if (ns.indexOf(".") == -1) {
typeof(root[ns]) != "object" && (root[ns] = {});
return root[ns];
}
else {
var _ns = ns.split(".")[0];
typeof(root[_ns]) != "object" && (root[_ns] = {});
return defineNamespace(root[_ns], ns.replace(/[^\.]*\./, ""));
}
}
};
defineNamespace(window,ns);
};
$package("
com.dd.bb")
com.dd.bb.cc = "12321";
$package("com.dd.qq")
com.dd.qq.nn = "111";
alert(
com.dd.bb.cc);
alert(com.dd.qq.nn);
var defineNamespace=function(root,ns){
ns=ns || "";
ns=ns.replace(/\s/g,"");
if (ns.length == 0) {
return root;
}else {
var nsc = ns.substr(0, 1);
if (nsc != nsc.toLowerCase()) {
throw new Error("命名空间首字母必须小写哦~");
}
if (ns.indexOf(".") == -1) {
typeof(root[ns]) != "object" && (root[ns] = {});
return root[ns];
}
else {
var _ns = ns.split(".")[0];
typeof(root[_ns]) != "object" && (root[_ns] = {});
return defineNamespace(root[_ns], ns.replace(/[^\.]*\./, ""));
}
}
};
defineNamespace(window,ns);
};
$package("
$package("com.dd.qq")
com.dd.qq.nn = "111";
alert(
alert(com.dd.qq.nn);