Js Singleton
使用javascript实现单例模式,由于上学时候学习的最多就是java,后来又做了很长时间的actionscript3,所以,在实现这个模式的时候,应该难免具有前两种语言的风格.如下是我用js实现的单例.
function SingleTon() {
	throw new Error("this is a singleTon,please use getInstance method to get it's instance.");
}
SingleTon.prototype = {
	constructor : SingleTon,
	name : 'singleTon',
	sayHi : function() {
		console.log('hi! I am ' + this.name);
	}
}
SingleTon.getInstance = function () {
	if ( !SingleTon.instance ) {
		var tmp = function(){};
		tmp.prototype = SingleTon.prototype;
		SingleTon.instance = new tmp();
	} 
	return SingleTon.instance;
}
可以用如下代码,进行测试:
var a = SingleTon.getInstance();
a.sayHi();
var b = SingleTon.getInstance();
b.sayHi();
b.name = 'jack';
b.sayHi();
a.sayHi();
var e = new SingleTon();
输出如下:
hi! I am singleTon 
hi! I am singleTon 
hi! I am jack 
hi! I am jack 
Uncaught Error: this is a singleTon,please use getInstance method to get it's instance.