1
class Cat {
storage = new Map()
constructor(id) {
if(storage.has(id)) return storage.get(id)
storage.set(id, this)
}
}
我想要从存储中删除对象,如果在应用程序中不使用它的引用。但是,如果应用程序中的链接存在,并且我们试图创建具有相同ID的对象,则返回此对象,而不是创建一个新对象。我怎么能没有析构函数呢?WeakMap模式Singleton没有内存泄漏
但是,当所有的对象引用从应用程序和对象从存储去除消失,再没有什么不好的创建对象的新实例
所以当有与应用程序ID'c1'一个'Cat'对象的参考,你想要什么?从地图中删除它,下次使用'new Cat(“c1”)'创建一个新对象? –
@Koushik Chatterjee是的,它始终需要具有唯一标识的对象是同一个对象/但是当对象的所有引用都从应用程序中消失,并且从存储中移除对象时,创建新实例没有任何坏处对象 – Maxmaxmaximus
这是在Node还是浏览器中运行? –