1 подписчик
Привет! Как скопировать массив или объект в javascript? 1) Копирование массива const names = ['Oliver', 'Sophia', 'William', "Emma', 'Ethan']; /* неправильно, copyNames содержит ссылку на names, при изменении элементов copyNames изменится names */ const copyNames = names; /* правильно, copyNames независимая копия, под неё в памчти выделено собственное место и её можно менять не изменяя names */ const copyNames = names.slice(); /* так тоже можно скопировать массив */ const copyNames = [...names];...
7 месяцев назад
Перевод этой статьи. В этой статье мы рассмотрим разные способы поверхностного и глубокого копирования объектов в JavaScript. Для начала стоит освежить пару базовых принципов. Объекты в JavaScript – это просто ссылки на участок в памяти. Эти ссылки мутабельны, т.е. их можно переназначить. Когда мы делаем копию такой ссылки, мы просто получаем 2 ссылки, которые указывают на один и тот же участок в памяти: В примере выше обе переменные – foo и bar – будут меняться при изменении одной из них. Это яркий...
5 лет назад
7 подписчиков
Привет, дружище! Сегодня я хочу рассказать тебе о копировании объектов и ссылках в JavaScript. Если ты когда-то работал с объектами, то знаешь, что это не всегда просто.

Давай начнем с того, что такое объект в JavaScript? Ну, это просто контейнер, который содержит некоторые данные, которые ты можешь использовать в своем коде. Объекты могут содержать как простые данные, так и функции, которые ты можешь вызывать.

Но как копировать объекты в JavaScript?

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

Вот краткий пример:

let originalObj = {name: "Вася", age: 25};
let copiedObj = originalObj; // скопируем по ссылке
copiedObj.age = 30;

console.log(originalObj.age); // в результате получим "30"

Как видишь, мы изменили свойство в скопированном объекте, но это также повлияло на оригинальный объект.
А теперь поговорим о копировании по значению. Это означает, что ты создаешь новый объект с такими же свойствами и значениями, как и в оригинальном объекте.
Таким образом, если ты изменяешь скопированный объект, это не повлияет на оригинальный объект.

let originalObj = {name: "Вася", age: 25};
let copiedObj = Object.assign({}, originalObj); // скопируем по значению
copiedObj.age = 30;

console.log(originalObj.age); // в результате получим "25"

В этом случае мы использовали метод Object.assign, чтобы скопировать свойства из оригинального объекта в новый объект. Затем мы изменили свойство в скопированном объекте, но это не повлияло на оригинальный объект.

И вот ты знаешь, как работает копирование объектов в JavaScript! С тебя теперь лайк, братец) 😁
12 месяцев назад
13,7K подписчиков
Источник: Nuances of Programming Не все копии в JavaScript одинаковы. Дело в том, что скопированная переменная в этом языке классифицируется как поверхностная и глубокая копия. Непонимание разницы между этими двумя понятиями, а также способов создания разных видов копий, может привести к путанице. Цель данной статьи  —  уберечь вас от подобных недоразумений. Для начала рассмотрим несколько типичных примеров копирования переменных. Возьмем такой пример: let apple = "apple"; let pear = apple pear = "pear" console...
1 год назад