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


posted @ 2015-10-25 23:36  terryc  阅读(171)  评论(0编辑  收藏  举报