function namespace(oNamespace, sPackage) {
  //包名用.分割形成名为keys的数组
  let keys = sPackage.split('.')
  //对数组使用高阶函数reduce
  //用法 [].reduce((先前的返回值,当前item的值)=>{return },pre初始值)
  keys.reduce((pre, cur) => {
    //判断oNamespace['a']是否为object类型
    if (typeof pre[cur] != 'object') {
      //不是,就给个空对象\n            pre[cur]={};
    }
    //是,那就返回出去,充当下次的pre值
    return pre[cur] //{test: 1, b: 2}
    // pre                 cur         pre[cur]
    // {a: {test: 1, b: 2}}       a        {test: 1, b: 2}
  }, oNamespace)
  return oNamespace
}