要是实在不知道要干什么,那就喝两杯思路就来了!

导航菜单

单例模式中的惰性函数

单例模式实现方案常用的有三种,其中有:全局变量方案、立即执行函数方案和惰性函数方案。前二者都是比较大众化的方案,没有什么好说的。这里着重看一下惰性函数的实现原理,不多说的,直接贴代码了。

function Tool () {
	var instance = this;
	var oldPrototype = Tool.prototype;

	this.name = '我的工具箱';

	Tool = function () {
		return instance;
	}

	Tool.prototype = oldPrototype;
	instance = new Tool();
	instance.constructor = Tool;
	return instance;
}

var t1 = new Tool();
var t2 = new Tool();

Tool.prototype.ask = function () {
	console.log('我这里有你需要的所有工具集!');
}

t1.ask();
t2.ask();

最终实现的效果是,使用构造函数Tool实例出来的对象,都是引用同一个指向(堆内存空间),Tool原型上的属性和方法均可实现共享。

发表评论