5

czytałem opis tego WeakMap i powiedział:śmieci na mapie i WeakMap kolekcjach w ES6

w natywnym WeakMaps, odniesienia do najważniejszych obiektów odbywają się „słabo”, co oznacza, że ​​one nie przeszkadzają wywóz śmieci w przypadku, gdyby nie było innego odniesienia do obiektu.

Odczytując to, rozumiem, że WeakMaps są używane w przypadkach, w których próbujesz skorzystać z wyrzucania śmieci JavaScriptu. To, czego zasadniczo nie rozumiem, to linia, którą pogrubiłem.

Dlaczego w normalnej Mapie obiekty bez odnośników nie byłyby zbiorem śmieci? Jakie są tego zalety i czy muszę wyraźnie usuwać z normalnych Map?

+0

Oznacza to, że jeśli klucze nie mają innych, niezależnych odniesień, gc może odzyskać swoje wspomnienia. –

+0

@HunanRostomyan Rozumiem koncepcję w wartości nominalnej, ale czuję, że bez przykładu nie mogę naprawdę zrozumieć, jak naprawdę działa GC. – m0meni

+0

Dobrze, to trochę zbyt abstrakcyjne. Próbowałem wymyślić mały przykład poniżej. Być może będzie to trochę bardziej użyteczne. –

Odpowiedz

0

„Dlaczego w normalnym mapą, by obiekty bez odniesienia do nich nie należy zebranych śmieci?” ponieważ sama mapa ma odniesienie do obiektu. Dopóki istnieje odwołanie, obiekt nie jest gced. - Felix Kling

0

w normalnym Map The Mapjest odniesienie do obiektu