JavaScript 根据包名,在指定空间中创建对象

/输入 namespace({a: {test: 1, b: 2}}, 'a.b.c.d')
//输出 {a: {test: 1, b: {c: {d: {}}}}}
 
function namespace(oNamespace, sPackage) {
    
    var name = sPackage.split('.');             //将sPackage中的'键名'提取出
    
    //浅拷贝
    var res = oNamespace;       //保留对原始对象的引用
    
    for (var i in name) {
    
       if (oNamespace.hasOwnProperty(name[i])) {        
           
           if (typeof oNamespace[name[i]] !== 'object') {       //若存在该属性且类型不是对象,则将其转化为对象
                oNamespace[name[i]] = {};
           }                                                               
       } else {
           oNamesapce[name[i]] = {};                    //若不存在改对象则直接赋值
       }
                                            
        oNamespace = oNamespace[name[i]];                                        
    }
}
 
namespace({a: {test: 1, b: 2}}, 'a.b.c.d');

猜你喜欢

转载自blog.csdn.net/AS_Tammy/article/details/88084982