利用reduce的prev形参地址引用会修改掉引用对象属性值的特性

function namespace(oNamespace, sPackage) {
    sPackage.split('.').reduce((prev, curr) => {
        prev[curr] = Object.assign({}, prev[curr]);
        return prev[curr];
    }, oNamespace)
    return oNamespace;
}