您好,欢迎来到知库网。
搜索
您的当前位置:首页根据包名,在指定空间中创建对象

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

来源:知库网
详细描述:

输入:namespace({a: {test: 1, b: 2}}, 'a.b.c.d')
输出:{a: {test: 1, b: {c: {d: {}}}}}

function namespace(oNamespace, sPackage) {
    var str = sPackage;
    var arr = str.split('.');
    var len = arr.length;

    // {arr[0]:{text1,arr[1]:{arr[2]:{arr[3]:{}}}}}
    var obj = oNamespace; //保留对原始对象的引用

    for(var i = 0; i < len; i++){
        if(arr[i] in oNamespace){ //空间名在对象中
            if(typeof oNamespace[arr[i]] != 'object'){ //为原始值
                oNamespace[arr[i]] = {}; //将此属性设置为空对象
            }
        }else{  //空间名不在对象中,建立此属性,赋值为空
            oNamespace[arr[i]] = {};
        }

        oNamespace = oNamespace[arr[i]];
    }
    return obj;
}

Copyright © 2019- zicool.com 版权所有 湘ICP备2023022495号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务