BeriaFantom
@BeriaFantom
Full Stack Razrabotchik

Почему атрибут configurable не определяет изменения атрибута writable?

Здесь все нормально. При попытке присвоить writable значения true, в консоли выводится ошибка, что свойство gender не смогло переопределится. person - объект
Object.defineProperty(person, 'gender',
{
	value: 'male',
	writable: false,
	enumerable: true,
	configurable: false
});

Object.defineProperty(person, 'gender', {
	writable: true
});


Однако, если изначально определить значение true у атрибута writable, а потом попытаться переопределить это значение на false, то ошибки не будет, хотя configurable имеет все то же значение. Но при этом, если переопределить значение enumerable на false, то ошибка появится. Как вы можете объяснить такое поведение?
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
https://developer.mozilla.org/en-US/docs/Web/JavaS...

Так написано в документации
If the old descriptor had its configurable attribute set to false (the property is said to be “non-configurable”), then no attribute besides writable can be changed. [...]

If a property is non-configurable, its writable attribute can only be changed to false.


Почему так сделали я не знаю. Предполагаю, что бы можно было задать свойство, а потом «заморозить» его значение навсегда.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы