TypeError: can't redefine non-configurable property "x"(Тип ошибки: не удается переопределить настраиваемое свойство "x")

В процессе перевода.

Сообщения

TypeError: невозможно изменить свойство, недоступное для записи {x} (Edge)
TypeError: невозможно переопределить не настраиваемое свойство "x" (Firefox)
TypeError: не удается переопределить свойство: "x" (Chrome)

Тип ошибки 

TypeError

Что не так?

Была предпринята попытка переопределить свойство, но это свойство не настраивается. Настраиваемый атрибут определяет, можно ли удалить свойство из объекта и можно ли изменить его атрибуты (отличные от доступных для записи). Обычно свойства объекта, созданного инициализатором объекта, настраиваются. Однако, например, при использовании Object.defineProperty(), свойство не настраивается по умолчанию.

Примеры

Не настраиваемые свойства, созданные Object.defineProperty

The Object.defineProperty() создает не настраиваемые свойства, если они не указаны как настраиваемые.

var obj = Object.create({});
Object.defineProperty(obj, "foo", {value: "bar"}); 

Object.defineProperty(obj, "foo", {value: "baz"});
// TypeError: не удается переопределить не настраиваемое свойство "foo"

Вам нужно будет установить свойство "foo" в конфигурируемое, если вы собираетесь переопределить его позже в коде.

var obj = Object.create({});
Object.defineProperty(obj, "foo", {value: "bar", configurable: true});
Object.defineProperty(obj, "foo", {value: "baz", configurable: true});

Смотрите также

Метки документа и участники

Внесли вклад в эту страницу: mdnwebdocs-bot, MakarovDs777
Обновлялась последний раз: mdnwebdocs-bot,