用一个对象规划一个命名空间,合理的管理对象上的属性与方法
命名空间
var niu = {
g : function(id) {
return document.getElementById(id);
},
css : function() {
this.g(id).style[...] = ...;
},
...
}
基于命名空间,创建一个模块分明的小型代码库
var A = {
Util : {
util_method1 : function() {},
util_method2 : function() {}
},
Tool : {
tool_method1 : function() {},
tool_method2 : function() {}
},
Ajax : {
get() {},
post() {}
}
}
A.Util.util_method1();
A.Tool.tool_method1();
A.Aja.get();
无法修改的静态变量
var Conf = (function() {
var conf = {
MAX_NUM : 1000,
MIN_NUM : 1,
COUNT : 100
}
return {
get: function(name) {
return conf[name] ? conf[name] : null;
}
}
})();
// 调用静态变量
var count = Conf.get('COUNT');
console.log(count);
惰性单例
var LazySingle = (function() {
var _instance = null;
function Single() {
return {
publicMethod : function() {},
publicProperty : '1.0'
}
}
return function() {
if (!_instance) {
_instance = Single();
}
return _instance;
}
})();
// 测试
console.log(LazySingle().publicProperty);