class Storage1 {
constructor() {
this.pools = {}
}
setItem(key, value) {
this.pools[key] = value
}
getItem(key, value) {
return this.pools[key]
}
static getInstance() {
if (!Storage1.instance) {
Storage1.instance = new Storage1()
}
return Storage1.instance
}
}
Storage1.getInstance().setItem('key1', 'cat')
console.log(Storage1.getInstance().getItem('key1'))
function Storage2() {
this.pools = {}
}
Storage2.prototype.setItem = function (key, value) {
this.pools[key] = value
}
Storage2.prototype.getItem = function (key) {
return this.pools[key]
}
Storage2.getInstance = function () {
let instance = null
return function () {
if (!instance) {
instance = new Storage2()
}
return instance
}
}()
Storage2.getInstance().setItem('key1', 'dog')
console.log(Storage2.getInstance().getItem('key1'))
console