Для чего нужны WeakMap и WeakSet?
Тут достаточно подробно объяснено для чего ввели такие типы данных.
https://developer.mozilla.org/ru/docs/Web/JavaScri...
https://developer.mozilla.org/ru/docs/Web/JavaScri...
Например делать приватные свойства класса (WeakMap)