自己经常用的一个js的命名空间的js,欢迎拍砖。可能写得不够完善,下面贴下自己的代码。
当多个单独的模块之间有关联关系的时候,通过命命名空间来获取比较能解决耦合度。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
( function (){
var
arrayEach = Array.prototype.forEach ? function
(obj, func) {
Array.prototype.forEach.call(obj || [], func);
} : function
(obj, func) {
for
( var
i = 0 , len = obj && obj.length || 0; i < len; i++)
func.call(window, obj[i], i);
};
/**
* @description 命名空间
**/
var
ns = function
(name) {
var
part = global,
parts = name && name.split( ‘.‘ ) || [];
arrayEach(parts, function
(partName) {
if
(partName) {
part = part[ partName ] || ( part[ partName ] = {});
}
});
return
part;
};
window.namespace = ns;
})() |