命名空间函数的实现示例,如果命名空间存在,便不会再重新创建它。

var MYAPP=MYAPP || {};
MYAPP.namespace = function(ns_string){
var parts = ns_string.split('.'),
parent = MYAPP,
i,
len;
//剥离最前面的冗余全局变量
if(parts[0]=="MYAPP"){
parts = parts.slice(1);
}
for(i=0,len=parts.length;i<len;i+=1){
//如果不存在,就创建一个属性
if(typeof parent[parts[i]]==="undefined"){
parent[parts[i]]={};
}
parent= parent[parts[i]];
}
return parent;
};
//console.log(MYAPP.namespace("MYAPP.modules.module51"))
MYAPP.namespace("MYAPP.modules.module51");