根据包名,在指定空间中创建对象
输入:
namespace({a: {test: 1, b: 2}}, 'a.b.c.d')
输出:
{a: {test: 1, b: {c: {d: {}}}}}
function namespace(oNamespace, sPackage) {
var package = sPackage.split('.');
var newName = oNamespace; // 保留对原始对象的引用
for(var i=0;i<package.length;i++){
if(!newName.hasOwnProperty(package[i])){ // 空间名不在对象中,建立此空间名属性,赋值为空
newName[package[i]] = {};
newName = newName[package[i]]; // 将指针指向下一个空间名属性
}
}
return newName;//此处返回newName和oName都可以,引用的是同一个对象
}