Skip to content

Commit

Permalink
update(JS): web/javascript/reference/operators/object_initializer
Browse files Browse the repository at this point in the history
  • Loading branch information
viperehonchuk committed Feb 4, 2025
1 parent 2254c0c commit ca06f93
Showing 1 changed file with 3 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ o = {
Запис літералів об'єктів – це не те саме, що **J**ava**S**cript **O**bject **N**otation ([JSON](/uk/docs/Glossary/JSON) – об'єктний запис JavaScript). Хоч вони мають подібний вигляд, між ними є різниця:

- JSON дозволяє оголошення властивостей _лише_ за допомогою запису `"property": value`. Назва властивостей повинна бути в подвійних лапках, і таке оголошення не може бути скороченим. Також не дозволені обчислені назви властивостей.
- Значення властивостей об'єктів JSON можуть бути рядками, числами, `true`, `false`, `null`, масивами або іншими об'єктами JSON. Це означає, що JSON не може виражати методи або не звичайні об'єкти, як то [`Date`](/uk/docs/Web/JavaScript/Reference/Global_Objects/Date) or [`RegExp`](/uk/docs/Web/JavaScript/Reference/Global_Objects/RegExp).
- Значення властивостей об'єктів JSON можуть бути рядками, числами, `true`, `false`, `null`, масивами або іншими об'єктами JSON. Це означає, що JSON не може виражати методи або не звичайні об'єкти, як то [`Map`](/uk/docs/Web/JavaScript/Reference/Global_Objects/Map) or [`RegExp`](/uk/docs/Web/JavaScript/Reference/Global_Objects/RegExp).
- У JSON `"__proto__"` є звичайним ключем властивості. В об'єктному літералі такий ключ [задає прототип об'єкта](#seter-prototypa).

JSON – це _сувора підмножина_ запису літералів об'єктів, тобто будь-який дійсний текст JSON може бути розібраний як літерал об'єкта і, ймовірно, не призведе до жодних синтаксичних помилок. Єдиним винятком є те, що запис літерала об'єкта не дозволяє дублювання ключів `__proto__`, що відрізняється від поведінки [`JSON.parse()`](/uk/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse). Цей статичний метод розглядає `__proto__` як звичайну властивість і бере за її значення останнє входження. Єдиний випадок, коли об'єктні значення, котрі вони представляють (тобто їхня семантика), відрізняються, також стосується ключа `__proto__`: в літералах об'єктів цей ключ задає прототип об'єкта, а для JSON це звичайна властивість.
Expand Down Expand Up @@ -229,7 +229,8 @@ const mergedObj = { ...obj1, ...obj2 };
// { foo: "baz", x: 42, y: 13 }
```

> **Застереження:** Зверніть увагу на те, що {{jsxref("Object.assign()")}} запускає [сетери](/uk/docs/Web/JavaScript/Reference/Functions/set), а запис розгортання – ні!
> [!WARNING]
> Зверніть увагу на те, що {{jsxref("Object.assign()")}} запускає [сетери](/uk/docs/Web/JavaScript/Reference/Functions/set), а запис розгортання – ні!
### Сетер прототипа

Expand Down

0 comments on commit ca06f93

Please sign in to comment.