在一些面向对象的语言中有命名空间的概念,好处就是把不同的类放在不同的文件夹下面,这样就不会发生命名冲突,当然命名空间还有其他的作用。
在这里我们讨论的是在JS中怎么使用命名空间。当然JS并没有提供原生的方式。我们可以这样做:
1、 我们创建一个空对象,例如:var nameSpace = {}; 我们就可以在这个空对象里面写函数了,这个是最简单的方式。
2、我们如果需要一个类似于java命名空间,例如:com.baibin.assess,那我们怎么办呢?
比较蠢的办法是
var com = { baibin:{ assess:{} }};
写起来也是非常麻烦的,其实原理就是这样的。现在我们来提供一直jquery的扩展,如下:
;(function($) { $.extend({ reg: function(pageage) { var arr = pageage.split("."); var ns = ""; for (var i = 0; i < arr.length; i++) { if (i > 0) ns += "."; ns += arr[i]; eval("if(typeof(" + ns + ") == 'undefined') " + ns + " = new Object();"); } } });})(jQuery);
我用的是jquery扩展的方式,这样我们调用的时候就可以类似:
$.reg("com.baibin.assess");
使用方式:
com.baibin.assess.add = function() { };
这样我们就可以在com.baibin.assess这样的命名空间里进行编码了,当然写起来可能比较麻烦,你可以把命名空间写的短些。
原标题:jquery 工作空间注册
关键词:jquery