javascript

位置:IT落伍者 >> javascript >> 浏览文章

基于JavaScript 下namespace 功能的简单分析


发布日期:2020年01月15日
 
基于JavaScript 下namespace 功能的简单分析

之前看到网易还是新浪还是什么什么网站来着也是用类似这种东西的当时对js只是九牛一毛的水平当场被吓傻了
但这次我打算亲自分析下以后在看到就不会迷茫了

复制代码 代码如下:
//调用例子bradionamespace("bradiolangarray");
//下面是百度编译后的源码变量都是abcd之后我会重新写一个规范点的
//好了开始分析
bradionamespace = function () { //创建命名空间
var a = arguments //["bradiolangarray"]
b = null //用于存放上一级对象
c d e f; //c是计数器d是内层循环的计数器e是拆分后命名空间数组f是arguments参数长度
c = ;
for (f = alength; c < f; c++) {
e = ("" + a[c])split(""); //拆分命名空间拆分后 ["bradio" "lang" "array"]
b = bradio; //基础对象基于这个对象进行命名空间的添加
for (d = "bradio" == e[] ? : ; d < elength; d++) //如果第一个是bradio 就第二个开始遍历 ["bradio""lang""array"]
b[e[d]] = b[e[d]] || {} b = b[e[d]]
//其实相当于
//b[e[d]] = b[e[d]] || {} //如果当前对象已经操作就用当前对象不存在就赋值空对象
//b = b[e[d]] //用字对象覆盖b接下去的循环基于子对象添加命名空间
}
return b//返回最后一层对象
};


下面是整理后的能看懂的版本

复制代码 代码如下:
//bradionamespace("bradiolangarray");
bradionamespace = function () { //创建命名空间
var args = arguments
parent = null
arr i j len;
for (i= len = argslength; i < len; i++) {
arr = ("" + args[i])split("");
parent = bradio;
for(j = "bradio" == arr[] ? : ; j < arrlength; j++) {
parent[ arr[j] ] = parent[ arr[j] ] || {};
parent = parent[ arr[j] ];
}
}
return parent;
}


当然只是我的理解如果哪里不是很对还请各位大侠帮忙指出以免误导了大家

               

上一篇:javascript检查表单数据是否改变的方法

下一篇:用jquery验证电话号码