题解 | #根据包名,在指定空间中创建对象#
根据包名,在指定空间中创建对象
http://www.nowcoder.com/practice/a82e035501504cedbe881d08c824a381
function namespace(oNamespace, sPackage) { const arr = sPackage.split('.'); let o = oNamespace; for(let i = 0;i<arr.length ;i++) { // 如果不是对象,则使它成为对象 if(typeof o[arr[i]] != 'object') { o[arr[i]] = {}; } o = o[arr[i]]; } return oNamespace; }
因为oNamespace是对象,因此o=oNamespace其实复制的是对象的引用,因此o的改变直接影响oNamespace, 所以可以在return的时候直接返回oNamespace.