您现在的位置是:首页
>
namespace后面跟什么 基于JavaScript 下namespace 功能的简单分析
基于JavaScri t 下 ame ace 功能的简单分析 之前看到网易还是新浪还是什么什么网站来着 也是用类似这种东西的 当时对j 只是九牛一毛的水平 当场被吓傻了 但这次 我打算亲自分析下
基于JavaScript 下namespace 功能的简单分析
之前看到网易还是新浪还是什么什么网站来着 也是用类似这种东西的 当时对js只是九牛一毛的水平 当场被吓傻了 但这次 我打算亲自分析下 以后在看到就不会迷茫了
复制代码 代码如下: //调用例子 bradio namespace("bradio lang array"); //下面是百度编译后的源码 变量都是a b c d 之后我会重新写一个规范点的 //好了 开始分析 bradio namespace = function () { //创建命名空间 var a = arguments //["bradio lang array"] b = null //用于存放上一级对象 c d e f; //c是计数器 d是内层循环的计数器 e是拆分后命名空间数组 f是arguments参数长度 c = ; for (f = a length; c < f; c++) { e = ("" + a[c]) split(" "); //拆分命名空间 拆分后 ["bradio" "lang" "array"] b = bradio; //基础对象 基于这个对象进行命名空间的添加 for (d = "bradio" == e[ ] ? : ; d < e length; 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//返回最后一层对象 };下面是整理后的 能看懂的版本

复制代码 代码如下: //bradio namespace("bradio lang array"); bradio namespace = function () { //创建命名空间 var args = arguments parent = null arr i j len; for (i= len = args length; i < len; i++) { arr = ("" + args[i]) split(" "); parent = bradio; for(j = "bradio" == arr[ ] ? : ; j < arr length; j++) { parent[ arr[j] ] = parent[ arr[j] ] || {}; parent = parent[ arr[j] ]; } } return parent; } lishixinzhi/Article/program/Java/JSP/201311/20447
很赞哦! (1072)