单例模式又指单体模式,是指只允许实例化一次的类,也就是对于某一个类型,该类型用于只能有一个实例,如果要获取该类型的实例,获取到的实例都是同一个。
在JavaScript中单例模式一般用于创建命名空间,利用对象字面量,也可以利用闭包创建静态变量的单例和延迟创建的单例。
实例:命名空间
var Ming = {
css: function(name, value){},
addClass: function(className){},
g: function(id){
return document.getElementById(id);
}
}
// 使用
var a = Ming.g('a1');
实例:配置静态变量
var Conf = (function(){
var pro = {
ONE: 1,
TWO: 2
}
return {
get: function(name){
if(pro[name]) return pro[name];
else return null;
}
}
})()
// 使用, 获取静态变量ONE
Conf.get('ONE');
实例:延迟创建的单例
var ins = (function(){
var instance = null;
function Instance(){
this.name = name;
this.age = age;
}
return {
get:function(){
if(instance) return instance;
else {
instance = new Instance();
return instance;
}
}
}
})