Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. JavaScript ссылки на ошибки
  5. TypeError: can't redefine non-configurable property "x"

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

TypeError: can't redefine non-configurable property "x"

Исключение "can't redefine non-configurable property" возникает, когда в коде переопределяетсяненастраиваемое свойство.

Сообщения

TypeError: Cannot redefine property: "x" (V8-based)TypeError: can't redefine non-configurable property "x" (Firefox)TypeError: Attempting to change value of a readonly property. (Safari)

Тип ошибки

TypeError

Что не так?

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

Примеры

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

TheObject.defineProperty() создаёт ненастраиваемые свойства, если они не помечены как настраиваемые.

js
const obj = Object.create({});Object.defineProperty(obj, "foo", { value: "bar" });Object.defineProperty(obj, "foo", { value: "baz" });// TypeError: can't redefine non-configurable property "foo"

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

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

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

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp