自己经常用的一个js的命名空间的js,欢迎拍砖。可能写得不够完善,下面贴下自己的代码。
当多个单独的模块之间有关联关系的时候,通过命命名空间来获取比较能解决耦合度。
(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;
})()