Объяснение
@js_testsПри добавлении пары ключ/значение с использованием метода set имя ключа будет равно значению первого аргумента, переданного в функцию set, а значением будет второй аргумент, переданный в функцию set. В данном случае ключом является функция () => 'greeting' и значение 'Hello world'. myMap теперь это { () => 'greeting' => 'Hello world!' }.
1 неверно, поскольку ключ не 'greeting', а () => 'greeting'. 3 неверно, так как мы создаем новую функцию, передавая ее в качестве параметра методу get. Объект взаимодействует со ссылкой. Функции - это объекты, поэтому две функции никогда не бывают строго равными, даже если они идентичны: они имеют ссылки на разные места в памяти.
Код:
const myMap = new Map() const myFunc = () => 'greeting' myMap.set(myFunc, 'Hello world!')