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
Теперь добавим собственный метод `toString` к объекту `user`.
147
147
148
-
Обычно, встроенный метод `toString` в объектах - неперечисляемый, он не работает в цикле `for..in`. Но если мы напишем свой собственный метод `toString`, он будет работать в цикле `for..in` по умолчанию:
148
+
Обычно, встроенный метод `toString` в объектах - неперечисляемый, его не видно в цикле `for..in`. Но если мы напишем свой собственный метод `toString`, цикл `for..in` будет выводить его по умолчанию:
149
149
150
150
```js run
151
151
let user = {
@@ -155,11 +155,11 @@ let user = {
155
155
}
156
156
};
157
157
158
-
// По умолчанию, оба свойства работают в цикле:
158
+
// По умолчанию, оба свойства выведутся:
159
159
for (let key in user) alert(key); // name, toString
160
160
```
161
161
162
-
Если мы этого не хотим, можно установить для свойства `enumerable:false`. Тогда это свойство не будет работать в цикле `for..in`, как и его встроенный аналог:
162
+
Если мы этого не хотим, можно установить для свойства `enumerable:false`. Тогда перестанет появляться в цикле `for..in`, как и его встроенный аналог:
163
163
164
164
```js run
165
165
let user = {
@@ -289,7 +289,7 @@ for (let key in user) {
289
289
290
290
...Но это не копирует флаги. Так что если нам нужен клон "получше", предпочтительнее использовать `Object.defineProperties`.
291
291
292
-
Другое отличие в том, что `for..in` игнорирует символические свойства, а `Object.getOwnPropertyDescriptors` возвращает дескрипторы *всех* свойств, включая символические.
292
+
Другое отличие в том, что `for..in` игнорирует символы, а `Object.getOwnPropertyDescriptors` возвращает дескрипторы *всех* свойств, включая свойства-символы.
0 commit comments