You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/04-object-basics/09-object-toprimitive/article.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ JavaScript не дозволяє налаштувати, як працюють
18
18
У нас є два цілі:
19
19
20
20
1. Це дозволить нам зрозуміти, що відбувається у випадку помилок коду, коли така операція відбулася випадково.
21
-
2. Є винятки, де такі операції можливі і доцільні. Наприклад, віднімання або порівняння дати (`Date` об’єкти). Ми будемо зустрічатися з ними пізніше.
21
+
2. Є винятки, де такі операції можливі та доцільні. Наприклад, віднімання або порівняння дати (`Date` об’єкти). Ми будемо зустрічатися з ними пізніше.
22
22
23
23
## Правила перетворення
24
24
@@ -85,7 +85,7 @@ JavaScript не дозволяє налаштувати, як працюють
85
85
86
86
Але на практиці все трохи простіше.
87
87
88
-
Всі вбудовані об’єкти, крім одного випадку (об’єкт `Date`, ми дізнаємося пізніше) реалізовують `"default"` перетворення так само, як `"number"`. І ми можемо зробити те ж саме.
88
+
Всі вбудовані об’єкти, крім одного випадку (об’єкт `Date`, ми дізнаємося пізніше) реалізовують `"default"` перетворення так само як `"number"`. І ми можемо зробити те ж саме.
89
89
90
90
Проте важливо знати про всі три підказки, незабаром ми побачимо, чому.
91
91
@@ -99,7 +99,7 @@ JavaScript не дозволяє налаштувати, як працюють
99
99
100
100
## Symbol.toPrimitive
101
101
102
-
Почнемо з першого методу. Є вбудований символ під назвою `Symbol.toPrimitive`, який слід використовувати для назви методу перетворення, як наприклад:
102
+
Почнемо з першого методу. Є вбудований символ під назвою `Symbol.toPrimitive`, який слід використовувати для назви методу перетворення, як, наприклад:
103
103
104
104
```js
105
105
obj[Symbol.toPrimitive] =function(hint) {
@@ -130,7 +130,7 @@ alert(+user); // hint: number -> 1000
130
130
alert(user +500); // hint: default -> 1500
131
131
```
132
132
133
-
Як ми бачимо з коду, `user` стає самоописаним рядком або грошовою сумою залежно від перетворення. Єдиний метод `[Symbol.toPrimitive]` об’єкту `user` обробляє всі випадки перетворення.
133
+
Як ми бачимо з коду, `user` стає само описаним рядком або грошовою сумою залежно від перетворення. Єдиний метод `[Symbol.toPrimitive]` об’єкту `user` обробляє всі випадки перетворення.
Як ми бачимо, поведінка така ж, як і в попередньому прикладі з `Symbol.toPrimitive`.
191
191
192
-
Часто ми хочемо, щоб в одному місці перехоплювалися та оброблялися всі перетворення в примітиви. У цьому випадку ми можемо реалізувати `toString`, як наприклад:
192
+
Часто ми хочемо, щоб в одному місці перехоплювалися та оброблялися всі перетворення в примітиви. У цьому випадку ми можемо реалізувати `toString`, як, наприклад:
193
193
194
194
```js run
195
195
let user = {
@@ -263,7 +263,7 @@ alert(obj + 2); // 22 ("2" + 2), перетворення до примітив
263
263
Є 3 типи (підказки) цього:
264
264
-`"string"` (для `alert` та інших операцій, які потребують рядка)
265
265
-`"number"` (для математичних операцій)
266
-
-`"default"` (кілька операторів, зазвичай об’єкти реалізують це так само, як і `"number"`.)
266
+
-`"default"` (кілька операторів, зазвичай об’єкти реалізують це так само як і `"number"`.)
267
267
268
268
Специфікація явно описує, який оператор використовує яку підказку.
0 commit comments