Skip to content

Commit 7068686

Browse files
authored
Merge pull request #392 from bardachov/suggestions
fix: Suggested better meaning
2 parents e4231cf + 5bb6d31 commit 7068686

4 files changed

Lines changed: 7 additions & 7 deletions

File tree

  • 1-js
    • 04-object-basics/06-constructor-new
    • 07-object-properties/02-property-accessors
    • 08-prototypes/01-prototype-inheritance
    • 09-classes/04-private-protected-properties-methods

‎1-js/04-object-basics/06-constructor-new/article.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
## Функція-конструктор
88

9-
Технічно, функції-конструктори -- це звичайні функції. Однак є дві загальні угоди:
9+
Технічно, функції-конструктори -- це звичайні функції. Однак є дві загальні домовленості:
1010

1111
1. Ім’я функції-конструктора повинно починатися з великої літери.
1212
2. Функції-конструктори повинні виконуватися лише з оператором `"new"`.
@@ -64,7 +64,7 @@ let user = {
6464

6565
Це і є основною метою конструкторів -- зручне перевикористання коду зі створення об’єктів.
6666

67-
Ще раз зауважимо -- технічно будь-яка функція (окрім стрілкових функцій, оскільки вони не мають власного `this`) може бути використана як конструктор. Вона може бути запущена через `new`, і буде виконано наведений вище алгоритм. "Ім’я з великої літери" це загальна угода, яка допомагає чітко зрозуміти, що функцію слід запускати з `new`.
67+
Ще раз зауважимо -- технічно будь-яка функція (окрім стрілкових функцій, оскільки вони не мають власного `this`) може бути використана як конструктор. Вона може бути запущена через `new`, і буде виконано наведений вище алгоритм. "Ім’я з великої літери" це загальна домовленість, яка допомагає чітко зрозуміти, що функцію слід запускати з `new`.
6868

6969
````smart header="new function() { ... }"
7070
Якщо у нас є багато рядків коду, які створюють єдиний складний об’єкт, ми можемо обернути їх у функцію-конструктор, яка одразу буде викликана, таким чином:
@@ -217,7 +217,7 @@ john = {
217217

218218
## Підсумки
219219

220-
- Функції-конструктори або, коротко, конструктори, є звичайними функціями, але існує загальна угода ім’я такої функції починати з великої літери.
220+
- Функції-конструктори або, коротко, конструктори, є звичайними функціями, але існує загальна домовленість ім’я такої функції починати з великої літери.
221221
- Конструктори повинні викликатися тільки з використанням оператора `new`. Такий виклик передбачає створення порожнього `this` на початку та повернення заповненого у кінці.
222222

223223
Ми можемо використовувати конструктори для створення численних подібних об’єктів.

‎1-js/07-object-properties/02-property-accessors/article.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ user.name = ""; // Ім’я занадто коротке...
180180

181181
Отже, ім’я зберігається у властивості `_name`, а доступ виконується за допомогою гетера та сетера.
182182

183-
Технічно зовнішній код може мати доступ до ім’я безпосередньо за допомогою `user._name`. Але існує широко відома конвенція, що властивості, що починаються з підкреслення `"_"`, є внутрішніми і не повинні використовуватися ззовні об’єкта.
183+
Технічно зовнішній код може мати доступ до ім’я безпосередньо за допомогою `user._name`. Але існує широко відома домовленість, що властивості, що починаються з підкреслення `"_"`, є внутрішніми і не повинні використовуватися ззовні об’єкта.
184184

185185

186186
## Використання для сумісності

‎1-js/08-prototypes/01-prototype-inheritance/article.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ alert(longEar.jumps); // true (береться з об’єкта rabbit)
129129
1. Посилання через прототипи не може бути замкнено в кільце. JavaScript видасть помилку, якщо ми визначемо `__proto__` в ланцюжку прототипів і замкнем його в кільце.
130130
2. Значення `__proto__` може бути, або посиланням на об'єк, або `null`. Інші типи значень - ігноруються.
131131

132-
Хоч це і очевидно, але все ж таки: може бути тільки одина властивість `[[Prototype]]`. Об’єкт не може успадковувати властивості та методи від двох прототипів одночасно.
132+
Хоч це і очевидно, але все ж таки: може бути тільки одна властивість `[[Prototype]]`. Об’єкт не може успадковувати властивості та методи від двох прототипів одночасно.
133133

134134

135135
```smart header="`__proto__` є старим і давнім getter/setter для `[[Prototype]]`"

‎1-js/09-classes/04-private-protected-properties-methods/article.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ coffeeMachine.waterAmount = 200;
8787

8888
**Захищені властивості зазвичай починають з підкресленням `_`.**
8989

90-
Це не синтаксис на рівні мови, а лише відома конвенція між програмістами, що такі властивості та методи не повинні бути доступними ззовні.
90+
Це не синтаксис на рівні мови, а лише відома домовленість між програмістами, що такі властивості та методи не повинні бути доступними ззовні.
9191

9292
Тому наша властивість буде називатися `_waterAmount`:
9393

@@ -316,7 +316,7 @@ class User {
316316

317317
Щоб приховати внутрішній інтерфейс, ми використовуємо захищені або приватні властивості:
318318

319-
- Захищені поля починаються з `_`. Це відома конвенція, яка не підкріплена на рівні мови. Програмісти повинні отримувати доступ до поля, що починається з `_`, лише з його класу та класів, успадковуваних від нього.
319+
- Захищені поля починаються з `_`. Це відома домовленість, яка не підкріплена на рівні мови. Програмісти повинні отримувати доступ до поля, що починається з `_`, лише з його класу та класів, успадковуваних від нього.
320320
- Приватні поля починаються з `#`. JavaScript гарантує, що ми можемо отримати доступ до них лише з середини класу.
321321

322322
Зараз, приватні поля не дуже добре підтримуються браузерами, але можна використовувати поліфіл.

0 commit comments

Comments
 (0)