Skip to content

Commit ed12361

Browse files
author
Nick Plekhanov
committed
ES2015 Objects: A bunch of small refactors
1 parent ad41cb8 commit ed12361

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

1-js/10-es-modern/6-es-object/article.md

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

1010
Зачастую у нас есть переменные, например, `name` и `isAdmin`, и мы хотим использовать их в объекте.
1111

12-
При объявлении объекта в этом случае достаточно указать только имя свойства, а значение будет взято из переменной с таким именем.
12+
При объявлении объекта в этом случае достаточно указать только имя свойства, а значение будет взято из переменной с аналогичным именем.
1313

1414
Например:
1515

@@ -81,7 +81,7 @@ alert( user["мой зелёный крокодил"] ); // Вася
8181
<li>`Object.setPrototypeOf(obj, newProto)`</li>
8282
</ul>
8383

84-
...А также "узаконено" свойство `__proto__`, которое даёт прямой доступ к прототипу. Его, в качестве "нестандартного", но удобного способа работы с прототипом реализовали почти все браузеры (кроме IE10-), так что было принято решение добавить его в стандарт.
84+
...А также "узаконено" свойство `__proto__`, которое даёт прямой доступ к прототипу. Его, в качестве "нестандартного", но удобного способа работы с прототипом, реализовали почти все браузеры (кроме IE10-), так что было принято решение добавить его в стандарт.
8585

8686
## Object.assign
8787

@@ -151,7 +151,7 @@ alert( NaN === NaN ); // false
151151

152152
Долгое время в JavaScript термин "метод объекта" был просто альтернативным названием для свойства-функции.
153153

154-
Теперь это уже не так, добавлены именно "методы объекта", которые, по сути, являются свойствами-функциями, привязанными к объекту.
154+
Теперь это уже не так. Добавлены именно "методы объекта", которые, по сути, являются свойствами-функциями, привязанными к объекту.
155155

156156
Их особенности:
157157

@@ -256,7 +256,7 @@ let rabbit = {
256256
rabbit.walk();
257257
```
258258

259-
Как правило, это используется в [классах](/class), которые мы рассмотрим в следующем разделе, но важно понимать, что "классы" здесь на самом деле не при чём. Свойство `super` работает через прототип, на уровне методов объекта.
259+
Как правило, это используется в [классах](/es-class), которые мы рассмотрим в следующем разделе, но важно понимать, что "классы" здесь на самом деле ни при чём. Свойство `super` работает через прототип, на уровне методов объекта.
260260

261261
При обращении через `super` используется `[[HomeObject]]` текущего метода, и от него берётся `__proto__`. Поэтому `super` работает только внутри методов.
262262

@@ -284,7 +284,7 @@ let rabbit = {
284284
rabbit.walk();
285285
```
286286

287-
Ошибка возникнет, так как `rabbit.walk` теперь обычная функция, и не имеет `[[HomeObject]]`. В ней не работает `super`.
287+
Ошибка возникнет, так как `rabbit.walk` теперь обычная функция и не имеет `[[HomeObject]]`. Поэтому в ней не работает `super`.
288288

289289
Исключением из этого правила являются функции-стрелки. В них используется `super` внешней функции. Например, здесь функция-стрелка в `setTimeout` берёт внешний `super`:
290290

@@ -339,7 +339,7 @@ walk(); // вызовет animal.walk()
339339
*/!*
340340
```
341341

342-
В примере выше метод `walk()` запускается отдельно от объекта, но всё равно сохраняется через `super` доступ к его прототипу, благодаря `[[HomeObject]]`.
342+
В примере выше метод `walk()` запускается отдельно от объекта, но всё равно, благодаря `[[HomeObject]]`, сохраняется доступ к его прототипу через `super`.
343343

344344
Это -- скорее технический момент, так как методы объекта, всё же, предназначены для вызова в контексте этого объекта. В частности, правила для `this` в методах -- те же, что и для обычных функций. В примере выше при вызове `walk()` без объекта `this` будет `undefined`.
345345
[/smart]

0 commit comments

Comments
 (0)