Singleton(单例)模式限制了类的实例化次数只能一次,以前使用PHP的时候,常用单例模式来处理数据库连接,保证数据库句柄唯一。
Singleton模式,在实例不存在的情况下,可以通过一个方法创建一个类来实现创建类的新实例;如果实例已经存在,它会简单返回该对象的引用。
今天,采用JavaScript来实现单例模式。在JavaScript中,有多种方式可以实现单例模式。
1、使用对象字面值
代码如下:
var obj = {
name: 'wen'
};
在JavaScript中,对象之间永远不会完全相等,因此,可以认为在使用对象字面量创建对象的时候,就是创建一个单例。
2、重写构造函数
代码如下:
function Singleton() {
//缓存实例
var instance;
//重写构造函数
Singleton = function() {
return instance;
};
//保留原型
Singleton.prototype = this;
//实例
instance = new Singleton();
//构造函数指针
instance.constructor = Singleton;
return instance;
}