1 对象字面量
var namespace = {
a: function() {
alert(1);
},
b: function() {
alert(2);
}
};
2 动态创建命名空间
var MyApp= {};
MyApp.namespace = function(name) {
var parts = name.split('.');
var current = MyApp;
for(var i in parts) {
if(!current[parts[i]]) {
current[parts[i]] = {};
}
current = current[parts[i]];
}
}
MyApp.namespace('event');
MyApp.namespace('dom.style');
//等价于:
var MyApp = {
event: {},
dom: {
style: {}
}
};
3. 使用闭包装私有变量
var user = (function(){
var _name = 'ss',
_age = '20';
return{
getUserInfo: function() {
return _name + '-' + _age;
}
}
})();
因为_name和_age被封装在闭包产生的作用域中,外部是无法访问这两个变量的,这就避免了全局命令污染。