javaScript设计模式之单例模式

首先为什么要用单例模式

意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。实例只能创建的时候被调用,避免全局污染。

主要解决:一个全局使用的类频繁地创建与销毁。

代码:

var Single = (function () {
var instance
var createSingle = function (name) {
if (instance) {
return instance
}
this.name = name
instance = this
return instance
}
return createSingle
})();

var a = new Single('123')
var b = new Single('456')
console.log(a === b) // true

new 过程中初始化一个object,假如instance存在直接返回instance。假如instance不存在,因为是闭包,说明是第一次创建实例,函数this指向object,然后object赋值给instance,最后返回instance(其实就是在闭包里加了一个判断,用来确保私有变量只被实例化一次)
这里关于new构造函数的过程,看下我下一篇new构造函数原理

posted @ 2020-05-21 10:05  fengwenqi  阅读(125)  评论(0编辑  收藏  举报