编辑代码

var LocalStorage = require('node-localstorage').LocalStorage;
localStorage = new LocalStorage('./scratch');

class Storage{

    /*
        方法是static的 ,则可以用类名调用 eg:BaseDao.getConnection(); 否则就需要new一个对象调用

        原因:
        静态方法跟非静态方法主要的区别在于生命周期。
        静态方法的生命周期从进程被创建就开始了,直到进程结束,所以说静态方法是全局的,贯穿整个进程。
        非静态方法的生命周期,从类实例化对象开始,直到实例对象被注销回收之后结束。
    */
    static getInstance () {
        if (!Storage.instance) {
            Storage.instance = new Storage();
        }

        return Storage.instance
    }

    getItem(key) {
        return localStorage.getItem(key);
    }

    setItem(key, value) {
        return localStorage.setItem(key, value);
    }
}

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

s1.setItem(name, 'jack')
console.log(s1.getItem(name));

console.log(s1 === s2);