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還是瀏覽器中運行? –