单例模式

箭头函数写法

const singleton = function () { };
singleton.getInstance = (() => {
    let instance = null;
    return () => {
        if (!instance) {
            instance = new singleton();
        }
        return instance;
    }
})()
const s1 = singleton.getInstance();
const s2 = singleton.getInstance();

console.log(s1 === s2);//true

function写法

singleton.getInstance=(function(){
    let instance = null;
    return function(){
        if(!instance){
            instance = new singleton(); 
        }
        return instance;
    }
})();

const s1 = singleton.getInstance();
const s2 = singleton.getInstance();

console.log(s1===s2);

class写法

实例1

实现一个 Storage

①Storage--class实现

②闭包实现

实例2

实现一个全局唯一的Modal弹框

index.html

modal.js

Last updated

Was this helpful?