JS 命名空间从易到难
//1、用匿名函数来控制函数的作用域【作用域限制在函数内】
(function(){
var a=1,b=2;
...
})();
//2、使用全局变量来共用一些变量
var GLOBAL={};
(function(){
var a=1,b=2;
GLOBAL.str1 = a;
GLOBAL.str2 = b;
})();
//3、空间命名防止冲突
var GLOBAL={};
(function(){
var a=1,b=2;
GLOBAL.A={};
GLOBAL.A.str = a;
GLOBAL.A.str2 = b;
})();
(function(){
var a=1,b=2;
GLOBAL.B={};
GLOBAL.B.str = a;
GLOBAL.B.str2 = b;
})();
//4、多级命名空间
var GLOBAL={};
(function(){
var a=1,b=2;
GLOBAL.A={};
GLOBAL.B={};
GLOBAL.A.str = a;
GLOBAL.B.obj = b;
})();
//5、使用命名空间函数并调用
var GLOBAL={};
GLOBAL.namespace=function(str){
var arr = str.split("."),o=GLOBAL;
for(i=(arr[0]="GLOBAL")?1:0;i<arr.length;i++){
o[arr[i]=o[arr[i]]] || {};
o=o[arr[i]];
}
};
(function(){
var a=1,b=2;
GLOBAL.namespace("A.CAT");
GLOBAL.namespace("B.DOG");
GLOBAL.A.CAT = a;
GLOBAL.B.DOG = b;
})();