Представьте, что вы дали другу свою книгу, он в ней что-то подчеркнул карандашом, и вернул вам обратно. Когда вы снова открываете книгу, пометки на месте — они остались. Всё логично. Но иногда в JavaScript происходит путаница: вы передаете объект в функцию, меняете его внутри, а снаружи он... не меняется. Или меняется, но не так, как вы ожидали. Давайте разберемся, почему так происходит, на понятных примерах. Обычно с простыми вещами (цифрами, текстом) всё просто. Копируя значение, мы создаем его независимую копию: Здесь внутри функции появилась своя независимая переменная ageInside. Мы изменили её, но на исходную переменную age это никак не повлияло. Это как отксерокопировать документ и исправить копию — оригинал останется прежним. Когда мы работаем с объектами, в переменной хранится не сам объект, а как бы "адрес" его места в памяти компьютера. Это как номер дома, а не сам дом. let person = { name: "Анна" }; Переменная person хранит не Анну целиком, а координаты, где искать информаци
Передача объектов в функции JavaScript: Почему изменения не всегда работают?
3 дня назад3 дня назад
9
2 мин