Skip to content

Commit 5d63d33

Browse files
authored
Update article.md
1 parent 0573294 commit 5d63d33

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

1-js/04-object-basics/02-object-copy/article.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
# Копирование объектов и ссылки
23

34
Одно из фундаментальных отличий объектов от примитивов заключается в том, что объекты хранятся и копируются "по ссылке", тогда как примитивные значения: строки, числа, логические значения и т.д. – всегда копируются "как целое значение".
@@ -154,7 +155,7 @@ let permissions1 = { canView: true };
154155
let permissions2 = { canEdit: true };
155156

156157
*!*
157-
// копирует все свойства из permissions1 и permissions2 в user
158+
// копируем все свойства из permissions1 и permissions2 в user
158159
Object.assign(user, permissions1, permissions2);
159160
*/!*
160161

@@ -220,7 +221,7 @@ let clone = Object.assign({}, user);
220221

221222
alert( user.sizes === clone.sizes ); // true, тот же объект
222223

223-
// user и clone обладают общими размерами
224+
// user и clone обладают общим свойством sizes
224225
user.sizes.width++; // изменяем свойства в первом объекте
225226
alert(clone.sizes.width); // 51, видим результат в другом
226227
```
@@ -257,6 +258,6 @@ alert(user.name); // Pete
257258

258259
Объекты присваиваются и копируются по ссылке. Другими словами, переменная хранит не "значение объекта", а "ссылку" (адрес в памяти) на это значение. Таким образом, копирование такой переменной или передача её в качестве аргумента функции копирует эту ссылку, а не сам объект.
259260

260-
Все операции с помощью скопированных ссылок (например, добавление/удаление свойств) выполняются с одним и тем же объектом.
261+
Все операции с использованием скопированных ссылок (например, добавление/удаление свойств) выполняются с одним и тем же объектом.
261262

262263
Чтобы создать "реальную копию" (клон), мы можем использовать `Object.assign` для так называемой "поверхностной копии" (вложенные объекты копируются по ссылке) или функцию "глубокого клонирования", такую как [_.cloneDeep(obj)](https://lodash.com/docs#cloneDeep).

0 commit comments

Comments
 (0)