Я только что обнаружил chromestatus.com и, потеряв несколько часов своего дня, нашел эту запись функции:
Карта: объекты карты - это простые карты ключей/значений.
Это меня смутило. Обычные объекты JavaScript - это словари, и как отличается Map
от словаря? Понятно, что они идентичны (согласно В чем разница между Картой и Словарем?)
Ссылки на документацию chromestatus не помогают:
Объектами карты являются коллекции пар ключ/значение, где оба ключа и значения могут быть произвольными значениями языка ECMAScript. Различное значение ключа может возникать только в одной паре ключ/значение в коллекции карт. Значимые значения клавиш, распознаваемые с использованием алгоритма сравнения, который выбирается при создании Карты.
Объект Map может выполнять итерацию своих элементов в порядке размещения. Объект карты должен быть реализован с использованием хэш-таблиц или других механизмов, которые в среднем предоставляют время доступа, которое является сублинейным по количеству элементов в коллекции. Структуры данных, используемые в этой спецификации объектов Map, предназначены только для описания требуемой наблюдаемой семантики объектов Map. Он не предназначен для жизнеспособной модели реализации.
... все еще звучит как объект для меня, так что я пропустил что-то.
Почему JavaScript получает (хорошо поддерживаемый) объект Map
? Что он делает?