Несколько раз, когда я использовал объекты в качестве ключей на карте, я делал это для хранения метаданных об этом конкретном объекте. Я всегда использовал для этого WeakMap
из-за того, что запись на карте собирает мусор автоматически, когда объект, который он использовал в качестве ключа, собирает мусор.
Хранение метаданных — это единственный вариант использования объектов в качестве ключей на картах, но мне любопытно, есть ли другие варианты использования объектов в качестве ключей, и если бы в этих случаях вы использовали обычный Map
вместо WeakMap
.
Map
. - person Bergi   schedule 02.06.2016Map
, поскольку мы также должны иметь возможность перебирать все узлы (это, например, то, что networkx.github.io делает (в Python) и мой порт JS). - person Felix Kling   schedule 02.06.2016