利用reduce的prev形参地址引用会修改掉引用对象属性值的特性 function namespace(oNamespace, sPackage) { sPackage.split('.').reduce((prev, curr) => { prev[curr] = Object.assign({}, prev[curr]); return prev[curr]; }, oNamespace) return oNamespace; }