单例模式的定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点
实际开发中我们可以用一个变量来标志当前是否已经为某个类(函数)创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象。实际应用中,比如浮层页面 下面举个例子:
var login = function () {
let div;
return function () {
if (!div) {
div = document.createElement('div')
div.innerHTML = "欢迎登陆"
div.style.display = "none"
document.body.append(div)
}
return div
}
}
document.getElementById("login").click(()=>{
let loginLayer = login()
loginLayer.style.display = "block"
})
通过变量标识,我们不需要每次在用户点击登录时创建dom节点,而是利用闭包缓存页面信息,提升性能。当然,实际开发中,单例模式的应用远远不止这些,但是我们理解了单例模式的思想和目的,有利于我们写出更优雅的代码。