单例模式的定义是: 保证一个类仅有一个实例,并且提供它的一个全局访问点。
一个简单的实现方式
var Singleton = function(name) {
this.name = name;
}
Singleton.prototype.getName = function() {
return this.name;
}
Singleton.getInstance = (function(name){
var instance = null;
return function(name) {
if (!instance) {
instance = new Singleton(name);
}
return instance;
}
})();
var instance1 = Singleton.getInstance('Hyy');
instance1.getName(); // Hyy
var instance2 = Singleton.getInstance('Tom'); // 还是拿到了先前的实例
instance2.getName(); // Hyy
instance1 === instance2; // true