Javascript 命名空间怎么个写法
看到cocos js里面有这个玩意,
var cc = cc || {}; 不懂啊,赶紧看了下cocos js里面的api说cc是命名空间 。
里面搜下,js里面怎么写命名空间的,有以下几种:
1. function做法
2. json对象法
3. 闭包+对象法
命名空间是为解决命名冲突而来,通过以下三步可以有效的解决这个问题
1. 可以用匿名函数
(function (){
var name = "mali";
})()
2. 用全局变量
因为我们的函数,需要交换数据,但是匿名函数里面的变量的有效区域,只在函数内部,这时候,就需要用到全局变量。
var GLOBAL = {};
3. 命名空间挂如全局变量中
var GLOBAL = {};
GLOBAL.namespace = function (str){
var arr = str.split("."),
var global = GLOBAL;
var initIndex = (arr[0]=="GLOBAL")?1:0;
for (var i = initIndex; i < arr.length; i++) {
global[arr[i]] = global[arr[i]] || {};
global = global[arr[i]];
};
}
GLOBAL.A.Name
GLOBAL.B.Name
可以看下这个文章
http://blog.sina.com.cn/s/blog_6d3f840a0102uxcr.html
参考 http://ourjs.com/detail/538d8d024929582e6200000c