Skip to content

Commit 12c8031

Browse files
authored
fix: remove duplicate
Упоминание об изменяемости свойств объектов, объявленных посредством const, есть в предыдущем топике "01-object" в 95 строке
1 parent 670ccab commit 12c8031

File tree

1 file changed

+0
-24
lines changed

1 file changed

+0
-24
lines changed

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

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -232,30 +232,6 @@ alert(clone.sizes.width); // 51, видим результат в другом
232232
233233
Также мы можем использовать глобальный метод [structuredClone()](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone), который позволяет сделать полную копию объекта. К сожалению он поддерживается только современными браузерами. [Здесь](https://caniuse.com/?search=structuredClone) можно ознакомиться с поддержкой этого метода.
234234
235-
````smart header="Объекты, объявленные как константа, могут быть изменены"
236-
Важным побочным эффектом хранения объектов в качестве ссылок является то, что объект, объявленный как `const`, *может* быть изменён.
237-
238-
Например:
239-
240-
```js run
241-
const user = {
242-
name: "John"
243-
};
244-
245-
*!*
246-
user.name = "Pete"; // (*)
247-
*/!*
248-
249-
alert(user.name); // Pete
250-
```
251-
252-
Может показаться, что строка `(*)` вызовет ошибку, но, это не так. Значение `user` это константа, оно всегда должно ссылаться на один и тот же объект, но свойства этого объекта могут свободно изменяться.
253-
254-
Другими словами, `const user` выдаст ошибку только в том случае, если мы попытаемся задать `user=...` в целом.
255-
256-
Тем не менее, если нам действительно нужно создать постоянные свойства объекта, это тоже возможно, но с использованием совершенно других методов. Мы затронем это в главе <info:property-descriptors>.
257-
````
258-
259235
## Итого
260236
261237
Объекты присваиваются и копируются по ссылке. Другими словами, переменная хранит не "значение объекта", а "ссылку" (адрес в памяти) на это значение. Таким образом, копирование такой переменной или передача её в качестве аргумента функции копирует эту ссылку, а не сам объект.

0 commit comments

Comments
 (0)