Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: reference, object, copy, mutable, memory

Что такое ссылка на объект в JavaScript?

Вопрос проверяет понимание работы с объектами по ссылке в JavaScript, что важно для избежания ошибок при копировании и изменении данных.

Короткий ответ

В JavaScript объекты хранятся и передаются по ссылке, а не по значению. Это значит, что переменная содержит не сам объект, а адрес в памяти, где он находится. При присваивании объекта другой переменной обе ссылаются на один и тот же объект, поэтому изменения через одну переменную видны через другую. Примитивы, наоборот, копируются по значению.

Длинный ответ

Что такое ссылка на объект?

В JavaScript объекты (включая массивы и функции) являются ссылочными типами данных. Это означает, что переменная, которой присвоен объект, хранит не сам объект, а ссылку (адрес) на область памяти, где этот объект расположен. Примитивные типы (числа, строки, булевы значения) хранятся и копируются по значению.

Как это работает на практике?

Когда вы присваиваете объект новой переменной, копируется именно ссылка, а не сам объект. Обе переменные теперь указывают на один и тот же объект в памяти. Любое изменение объекта через одну переменную отразится и на другой.

let obj1 = { name: 'Alice' };
let obj2 = obj1; // копируется ссылка
obj2.name = 'Bob';
console.log(obj1.name); // 'Bob' — объект изменён

Для создания независимой копии объекта необходимо выполнить поверхностное или глубокое копирование. Поверхностное копирование можно сделать с помощью Object.assign() или спред-оператора, но вложенные объекты останутся общими.

let original = { a: 1, b: { c: 2 } };
let shallowCopy = { ...original };
shallowCopy.b.c = 3;
console.log(original.b.c); // 3 — вложенный объект общий

Для полного копирования используется JSON.parse(JSON.stringify(obj)) или библиотеки вроде Lodash.

Где это применяется?

Понимание ссылок критично при работе с состоянием в React (чтобы не мутировать state напрямую), при передаче объектов в функции (изменения внутри функции влияют на внешний объект) и при сравнении объектов (два объекта с одинаковыми свойствами не равны, если это разные ссылки).

Вывод: Ссылочная модель JavaScript позволяет эффективно работать с памятью, но требует осторожности при копировании и изменении объектов. Используйте поверхностное или глубокое копирование, когда нужно создать независимую копию, особенно в иммутабельных подходах, таких как Redux или React state.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#reference

#object

#copy

#mutable

#memory

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию