传统单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
实现单例核心思想
用一个变量来标志当前是否已经为某个类创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象,接下来我们用JavaScript来强行实现这个思路。
var Singleton = function(name) { this.name = name; this.instance = null; } Singleton.prototype.getName = function() { alert(this.name); }; Singleton.getInstance = function(name) { if (!this.instance) { this.instance = newSingleton(name); } return this.instance; }; var a = Singleton.getInstance('seven1'); var b = Singleton.getInstance('seven2');惰性单例指的是在需要的时候才创建对象的实例。惰性单例是单例模式的重点。
var createLoginLayer=(function(){ var div; return function(){ if(!div){ div=document.createElement('div'); } return div; } })(); document.getElementById('loginBtn').οnclick=function(){ varloginLayer=createLoginLayer(); loginLayer.style.display='block'; };这里的对惰性单例的实现主要是只有单击了网页上的登录按钮,才会去创建,登录框的dom节点,并且只是创建一次。
转载: https://blog.csdn.net/yisuowushinian/article/details/52003127