Skip to content

Commit d6b327e

Browse files
author
Sergey
authored
Update article.md
1 parent 8f2d63c commit d6b327e

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

  • 1-js/07-object-properties/01-property-descriptors

1-js/07-object-properties/01-property-descriptors/article.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
Помимо **`значения`**, свойства объекта имеют три специальных атрибута (так называемые "флаги").
1313

14-
- **`writable`** -- если значение `true`, свойство можно изменить, иначе оно только для чтения.
14+
- **`writable`** -- если `true`, свойство можно изменить, иначе оно только для чтения.
1515
- **`enumerable`** -- если `true`, свойство работает в циклах, в противном случае циклы его игнорируют.
1616
- **`configurable`** -- если `true`, свойство можно удалить, а эти атрибуты можно изменять, иначе этого делать нельзя.
1717

@@ -145,7 +145,7 @@ user.name = "Alice"; // Ошибка
145145

146146
Теперь добавим собственный метод `toString` к объекту `user`.
147147

148-
Обычно, встроенный метод `toString` в объектах - неперечисляемый, он не работает в цикле `for..in`. Но если мы напишем свой собственный метод `toString`, он будет работать в цикле `for..in` по умолчанию:
148+
Обычно, встроенный метод `toString` в объектах - неперечисляемый, его не видно в цикле `for..in`. Но если мы напишем свой собственный метод `toString`, цикл `for..in` будет выводить его по умолчанию:
149149

150150
```js run
151151
let user = {
@@ -155,11 +155,11 @@ let user = {
155155
}
156156
};
157157

158-
// По умолчанию, оба свойства работают в цикле:
158+
// По умолчанию, оба свойства выведутся:
159159
for (let key in user) alert(key); // name, toString
160160
```
161161

162-
Если мы этого не хотим, можно установить для свойства `enumerable:false`. Тогда это свойство не будет работать в цикле `for..in`, как и его встроенный аналог:
162+
Если мы этого не хотим, можно установить для свойства `enumerable:false`. Тогда перестанет появляться в цикле `for..in`, как и его встроенный аналог:
163163

164164
```js run
165165
let user = {
@@ -289,7 +289,7 @@ for (let key in user) {
289289

290290
...Но это не копирует флаги. Так что если нам нужен клон "получше", предпочтительнее использовать `Object.defineProperties`.
291291

292-
Другое отличие в том, что `for..in` игнорирует символические свойства, а `Object.getOwnPropertyDescriptors` возвращает дескрипторы *всех* свойств, включая символические.
292+
Другое отличие в том, что `for..in` игнорирует символы, а `Object.getOwnPropertyDescriptors` возвращает дескрипторы *всех* свойств, включая свойства-символы.
293293

294294
## Глобальное запечатывание объекта
295295

0 commit comments

Comments
 (0)