javascript之每天一个模式系列(1)

每天一个设计模式之单例模式

在单例模式下,仅需要创建一个对象,并且不需要在使用的时候实例化这个对象。也就是说,在全局范围内,任何时候访问的都是同一个对象里面的资源。
一个普通的单例模式:

javascript单例模式
1
2
3
4
5
6
7
8
9
var singleton = {
param : 1,
method : function(){
alert( this.param );
}
}
singleton.method();
singleton.param = 2;
singleton.method();

在javascript中,单例模式特别适合于创建命名空间

javascript命名空间
1
2
3
4
5
6
7
8
9
10
var Namespace = {
Util : {
utilMethod1 : function(){},
utilMethod2 : function(){}
},
Ajax : {
ajaxMethod1 : function(){},
ajaxMethod2 : function(){}
}
}

通过上面的方式,我们可以控制一个页面只有有限甚至一个全局变量暴露在外,从而避免出现全局变量污染问题。