Citando WeakMap
Objects section,
Se un oggetto che viene utilizzato come chiave di una coppia chiave WeakMap/valore è raggiungibile solo seguendo una catena di riferimenti che inizia entro tale WeakMap, tale chiave/valore la coppia è inaccessibile e viene automaticamente rimossa da WeakMap.
Nel tuo caso, l'unico modo per raggiungere o
sarebbe iniziare da una delle chiavi del weakMap
, come non ci sono riferimenti esterni ad esso. Quindi, sarebbe considerato inaccessibile.
Le implementazioni WeakMap devono rilevare e rimuovere tali coppie chiave/valore e qualsiasi risorsa associata.
Quindi, sarebbe alla fine raccogliere i rifiuti.
Non è previsto. Le cose che hanno solo riferimenti circolari sono idonee per la garbage collection, quindi non dovrebbero rimanere in weakMap. – jfriend00
Stavo dicendo che dovrebbe essere rilasciato perché non ci sono riferimenti esterni ad esso e quindi non è raggiungibile altrove. – jfriend00
Che dire di questo esempio è circolare? – loganfsmyth