SobesLab логотип SobesLab

Ответ

Если использовать объект как ключ в обычном объекте (через назначение obj[someObject] = value), этот ключ неявно преобразуется в строку. По правилу преобразования объектов к примитиву, объект по умолчанию становится `"[object Object]"`. Таким образом, все объекты-ключи превратятся в одну и ту же строку "[object Object]". Это значит, что если вы попробуете использовать два разных объекта в качестве ключей, на самом деле они будут перезаписывать одно свойство. По этой причине для карт \"объект -> значение\" применяют Map, где ключи могут быть объектами напрямую (без преобразования).