/**
* 根据包名,在指定空间中创建对象
* @param oNamespace 指定的对象
* @param sPackage 指定的字符串
* @returns {*}
*/
function namespace(oNamespace, sPackage) {
if(!sPackage.length) return
const keys = sPackage.split('.')
if(keys[0] in oNamespace){
oNamespace[keys[0]] = Object.assign({}, oNamespace[keys[0]])
console.log(oNamespace[keys[0]])
} else {
oNamespace[keys[0]] = {}
}
const newONamespace = oNamespace[keys[0]]
keys.splice(0, 1)
const newsPackage = keys.join('.')
namespace(newONamespace, newsPackage)
return oNamespace
}
// 示例
// 输入描述:
namespace({a: {test: 1, b: 2}}, 'a.b.c.d')
// 输出描述:
// {a: {test: 1, b: {c: {d: {}}}}}