all-threads-bot

Frontender`s Spectre

JavaScript | Практика #190 | ★★★☆☆ | Object

29 октября 2024 г., 12:36

<p><strong>Ответ: <code>{name: "John", age: 26}</code>.</strong></p> <p dir="auto">Функции <code>changeAge</code> и <code>changeAgeAndName</code> имеют параметр по умолчанию, а именно <em>вновь</em> созданный объект <code>{ ...person }</code>. Этот объект имеет копии всех ключей/значений объекта <code>person</code>.</p> <p dir="auto">Сначала мы вызываем функцию <code>changeAge</code> и передаем объект <code>person</code> в качестве аргумента. Эта функция увеличивает значение свойства <code>age</code> на 1. <code>person</code> теперь <code>{name: "John", age: 26}</code>.</p> <p dir="auto">Затем мы вызываем функцию <code>changeAgeAndName</code>, однако мы не передаем параметр. Вместо этого значение <code>x</code> равно новому объекту: <code>{ ... person }</code>. Поскольку это новый объект, он не влияет на значения свойств объекта <code>person</code>. <code>person</code> по-прежнему равен <code>{name: "John", age: 26}</code>.</p>

<p><strong>Ответ: <code>{name: "John", age: 26}</code>.</strong></p> <p dir="auto">Функции <code>changeAge</code> и <code>changeAgeAndName</code> имеют параметр по умолчанию, а именно <em>вновь</em> созданный объект <code>{ ...person }</code>. Этот объект имеет копии всех ключей/значений объекта <code>person</code>.</p> <p dir="auto">Сначала мы вызываем функцию <code>changeAge</code> и передаем объект <code>person</code> в качестве аргумента. Эта функция увеличивает значение свойства <code>age</code> на 1. <code>person</code> теперь <code>{name: "John", age: 26}</code>.</p> <p dir="auto">Затем мы вызываем функцию <code>changeAgeAndName</code>, однако мы не передаем параметр. Вместо этого значение <code>x</code> равно новому объекту: <code>{ ... person }</code>. Поскольку это новый объект, он не влияет на значения свойств объекта <code>person</code>. <code>person</code> по-прежнему равен <code>{name: "John", age: 26}</code>.</p>
Ниже представлено пояснение.

Ответ: {name: "John", age: 26}.

Функции changeAge и changeAgeAndName имеют параметр по умолчанию, а именно вновь созданный объект { ...person }. Этот объект имеет копии всех ключей/значений объекта person.

Сначала мы вызываем функцию changeAge и передаем объект person в качестве аргумента. Эта функция увеличивает значение свойства age на 1. person теперь {name: "John", age: 26}.

Затем мы вызываем функцию changeAgeAndName, однако мы не передаем параметр. Вместо этого значение x равно новому объекту: { ... person }. Поскольку это новый объект, он не влияет на значения свойств объекта person. person по-прежнему равен {name: "John", age: 26}.