随着程序复杂度的提高,代码会分置在不同的文件中以特定顺序来加载,这样一来,就不能保证你的代码一定是第一个申明命名空间或者改变量下属性的,所以最好检查下是否存在。【单例模式】
var MYAPP = MYAPP || {};
但是每次都做同样的检查会有重复的代码,所以需要一个重用的namespace()函数来专门处理这些检查工作,然后创建命名空间。
var MYAPP = MYAPP || {};
MYAPP.namespace = function (ns_string){
var parts = ns_string.split('.'),
parent = MYAPP,
i;
if(parts[0] === "MYAPP"){
parts = parts.slice(1);
}
for(i = 0;i<parts.length;i++){
if(typeof parent[parts[i]] === "undefined"){
parent[parts[i]] = {};
}
parent = parent[parts[i]]
}
return parent;
}
调用
MYAPP.namespace(modules1.modules2);