Как карты ES6 реализованы под капотом? - PullRequest
0 голосов
/ 24 октября 2019

Меня попросили во время интервью реализовать структуру данных пар ключ / значение, где ключи могут быть объектом, я знаю, что это возможно при использовании карт ES6, но как они работают под капотом в Javascript, где ключи строго строковые ивсе же достичь того же постоянного времени поиска для хеш-таблицы / объекта?

Спасибо.

1 Ответ

2 голосов
/ 24 октября 2019

Ключи Map являются , а не ключами объекта Map. Они являются аргументами для методов .get и .set.

 const map = new Map;
 const key = {};
 map.set(key, "stuff"); // key is passed as an argument, not stringified
 map[key] // key would get stringified here according to language semantics, but even then it would be undefined as maps keys aren't keys of the map object

То, что эти методы делают внутри, зависит от реализации.

...