单例设计模式
所谓单例设计模式就是一个实例的类, 代码实现非常简单,
主要用处就是为了节省资源, 因为有时候一个工具类,一个实例就够了并不需要多个实例
class Singleton {
constructor() {
// 在new对象的时候, 判断对象是否存在
// 如果不存在将唯一实例挂载到类的静态属性上
if (!Singleton.instance) {
Singleton.instance = this;
}
return Singleton.instance;
}
}
使用
const s1 = new Singleton();
const s2 = new Singleton();
console.log("s1:", s1);
console.log("s2", s1);
console.log("s1===s2", s1 === s2);
单例设计模式 (IIFE)
;(function (win) {
let instance = null;
win.Singleton = function () {
if (!instance) {
instance = this;
}
return instance;
}
})(window);
const s1 = new Singleton();
const s2 = new Singleton();
console.log(s1 === s2); // true
单例设计模式(惰性函数)
function Singleton() {
const instance = this;
Singleton = function() {
return instance;
}
}
网友评论