Skip to content

Commit 8a17e8b

Browse files
committed
Update article.md
1 parent a007239 commit 8a17e8b

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

  • 1-js/6-objects-more/4-descriptors-getters-setters

1-js/6-objects-more/4-descriptors-getters-setters/article.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ Object.defineProperty(obj, prop, descriptor)
4343

4444
## Обычное свойство
4545

46-
Обычное свойство добавить очень просто.
47-
4846
Два таких вызова работают одинаково:
4947

5048
```js
@@ -55,12 +53,14 @@ var user = {};
5553
user.name = "Вася";
5654

5755
// 2. указание значения через дескриптор
58-
Object.defineProperty(user, "name", { value: "Вася" });
56+
Object.defineProperty(user, "name", { value: "Вася", configurable: true, writable: true, enumerable: true });
5957
```
6058

59+
Оба вызова выше добавляют в объект `user` обычное (удаляемое, изменяемое, перечисляемое) свойство.
60+
6161
## Свойство-константа
6262

63-
Для того, чтобы сделать свойство неизменяемым, добавим ему флаги `writable` и `configurable`:
63+
Для того, чтобы сделать свойство неизменяемым, изменим его флаги `writable` и `configurable`:
6464

6565
```js
6666
//+ run
@@ -72,8 +72,10 @@ var user = {};
7272

7373
Object.defineProperty(user, "name", {
7474
value: "Вася",
75+
*!*
7576
writable: false, // запретить присвоение "user.name="
7677
configurable: false // запретить удаление "delete user.name"
78+
*/!*
7779
});
7880

7981
// Теперь попытаемся изменить это свойство.
@@ -84,7 +86,7 @@ user.name = "Петя";
8486
*/!*
8587
```
8688

87-
Заметим, что без `use strict` операция записи "молча" не сработает, а при `use strict` дополнительно генерируется ошибка.
89+
Заметим, что без `use strict` операция записи "молча" не сработает. Лишь если установлен режим `use strict`, то дополнительно сгенерируется ошибка.
8890

8991
## Свойство, скрытое для for..in
9092

0 commit comments

Comments
 (0)