javascript задача — три объекта
Давайте рассмотрим задачку.
Что нам вернет функция?
(function() { var foo = new Object(); var bar = new Object(); var map = new Object();map[foo] = 'foo'; map[bar] = 'bar'; return map[foo]; })();
Решение.
Сначала у нас создаются объекты foo, bar, map.
Затем в строке 4 мы, используем объект в качестве ключа map, но там ожидалась строка!
И вот тут-то и происходит магия преобразования. foo — это объект и он преобразуется в строку, т.е. в ‘[object Object]’.
Со строчкой 5 происходит то же самое. Таки образом, мы присваиваем свойству объекта ‘[object Object]’ сначала значение ‘foo’, затем значение ‘bar’.
Очевидно, функция выведет ‘bar’.
Затем в строке 4 мы, используем объект в качестве ключа map, но там ожидалась строка!
И вот тут-то и происходит магия преобразования. foo — это объект и он преобразуется в строку, т.е. в ‘[object Object]’.
Со строчкой 5 происходит то же самое. Таки образом, мы присваиваем свойству объекта ‘[object Object]’ сначала значение ‘foo’, затем значение ‘bar’.
Очевидно, функция выведет ‘bar’.
Хотите быть в курсе новых статей?
❦