1 //命名空间 2 var MYAPP = MYAPP || {}; 3 4 MYAPP.namespace = function(ns_string){ 5 var parts = ns_string.split("."), 6 parent = MYAPP, 7 i; 8 9 // 剥离全局 10 if(parts[0] === "MYAPP"){ 11 parts = parts.slice(1); 12 } 13 14 for(i = 0;i<parts.length;i++){ 15 //如果它不存在,就创建一个属性 16 items = parts[i]; 17 if(typeof parent[items] === "undefined"){ 18 parent[items] = {}; 19 } 20 21 parent = parent[items]; 22 } 23 return parent; 24 25 }; 26 27 var module2 = MYAPP.namespace("MYAPP.modules.module2"); 28 console.log(module2 === MYAPP.modules.module2);
为了网站中各js之间的通信,我们会想到用定义一个全局对象 GLABAL = {}; 达到目的,命名空间的作用是避免全局变量的冲突以及过长的命名