Почему порядок вывода ключа объекта именно такой? Изучаю JavaScript и в книге есть такой пример.function f(o) {
o.message = "Изменено в f";
o = {
message: "Новый объект!"
};
console.log (`Внутри f: o.message="${o.message}" (после присваивания)`);
}
let o = {
message: 'Начальное значение'
};
console.log(`Перед вызовом f: o.message="${o.message}"`);
f(o);
console.log(`После вызова f: o.message="${o.message}"`);Результат выполнения следующий:
Перед вызовом f: o.message="Начальное значение"
Внутри f: o.message="Новый объект!" (после присваивания)
После вызова f: o.message="Изменено в f"Вопрос
Почему в строку выводится "Новый объект!", вместо "Изменено в f", когда в теле функции первым идет o.message = "Изменено в f";
Дело в приоритете оператов или здесь какое-то другое правило?
Сильно не ругайте, если вопрос глупый, я новичок, пытался гуглить, но выходили совершенно иные темы.spoilerВ самом учебнике этому не уделено внимание.

21 Авг 2019 в 07:00
199 +1
0
Ответы
1

Причина, по которой в строке выводится "Новый объект!" вместо "Изменено в f", связана с тем, как работает передача объектов в JavaScript.

В JavaScript объекты передаются по ссылке, то есть переменная o в функции f указывает на тот же объект в памяти, что и переменная o вне функции. Когда внутри функции вы делаете o.message = "Изменено в f";, вы обращаетесь к тому же объекту, который был передан в функцию. После этого вы создаете новый объект с новым свойством message и присваиваете переменной o этот новый объект, но это не влияет на изначальный объект за пределами функции. Поэтому после вызова функции o.message по-прежнему будет равно "Изменено в f", так как первоначальный объект не изменился.

Надеюсь, это поможет вам лучше понять поведение кода в данном случае. Если у вас есть дополнительные вопросы, не стесняйтесь задавать.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 622 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир