Ich habe eine Eltern/Kind-Beziehung, die so aussieht.Wird WeakMap mich vor einem Speicherverlust für die Eltern/Kind-Beziehung schützen?
parent.children = [child];
child.parent = parent;
Wird diese Ursache Speicherverlust, wenn alle anderen Verweise auf
parent
undchild
werden entfernt? Nur Referenzen, die übrig bleiben, werden sich gegenseitig zuordnen.Wenn es Speicherverlust aufgrund zyklischer Referenz verursachen wird, wird
WeakMap
mir retten?
WeakMap
Verwendung,
var parentMap = new WeakMap();
parent.children = [child];
parentMap.set(child, parent);
Ich denke, dass es nicht da, parentMap
einen Verweis auf parent
hat, und parent
hat einen Verweis auf child
. Es gibt immer noch eine zyklische Referenz.