Основываясь на моем понимании документов (здесь и здесь), нужна ссылка на адрес памяти для работы:
const foo = {};
const map = new Map();
map.set(foo,'123'); // Can only be done if memory address of `foo` is known. Any other shimming would require stringification of foo
Это связано с тем, что ключи JavaScript {}
могут быть только строками (по крайней мере, в ES5).
Тем не менее, я вижу Map
плагин: https://github.com/zloirock/core-js#map. Я пробовал читать источник, но его слишком аккуратно абстрагировался (внутренне использует сильную коллекцию, которая затем импортирует еще 10 файлов)
Вопрос
Ответьте на любое из следующих вопросов
- Есть ли простой трюк, и действительно ли это можно сделать (без стрификации)?
- Возможно, он мутирует
foo
для хранения некоторой строки на нем, а затем использует это как ключ? - Что-то еще и, возможно, я неправильно читаю документы?