jquery 工作空间注册

时间:2022-01-05 06:15:35

在一些面向对象的语言中有命名空间的概念,好处就是把不同的类放在不同的文件夹下面,这样就不会发生命名冲突,当然命名空间还有其他的作用。

在这里我们讨论的是在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这样的命名空间里进行编码了,当然写起来可能比较麻烦,你可以把命名空间写的短些。