不断往oNamespace内遍历匹配包名,使用临时变量inner保存oNamespace内部对象地址,按照包名修正内部对象。
function namespace(oNamespace, sPackage) {
let arr = sPackage.split('.');
let inner = oNamespace;
for(let i=0, len = arr.length; i< len; i++){
if(arr[i] in inner){
if(!(inner[arr[i]] instanceof Object)){
inner[arr[i]] = {};
}
} else {
inner[arr[i]] = {};
}
inner = inner[arr[i]];// 内移
}
return oNamespace;
}
京公网安备 11010502036488号