From 76809bf158690469bfd9ea0bee127a5e812f373b Mon Sep 17 00:00:00 2001 From: Nathália Pissuti Date: Tue, 19 Oct 2021 08:43:04 -0300 Subject: Javascript reference error cant_redefine_property page in pt-br (#2706) --- .../errors/cant_redefine_property/index.md | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 files/pt-br/web/javascript/reference/errors/cant_redefine_property/index.md (limited to 'files') diff --git a/files/pt-br/web/javascript/reference/errors/cant_redefine_property/index.md b/files/pt-br/web/javascript/reference/errors/cant_redefine_property/index.md new file mode 100644 index 0000000000..50bb8b96fa --- /dev/null +++ b/files/pt-br/web/javascript/reference/errors/cant_redefine_property/index.md @@ -0,0 +1,62 @@ +--- +title: 'TypeError: can''t redefine non-configurable property "x"' +slug: Web/JavaScript/Reference/Errors/Cant_redefine_property +tags: + - Error + - Errors + - JavaScript + - TypeError +--- +{{jsSidebar("Errors")}} + +A exceção do Javascript "can't redefine non-configurable property" ocorre quando é +feita a tentativa de redefinir uma propriedade, mas essa propriedade [não é configurável](/pt-BR/docs/Web/JavaScript/Data_structures#properties). + +## Mensagem + +```js +TypeError: Cannot modify non-writable property {x} (Edge) +TypeError: can't redefine non-configurable property "x" (Firefox) +TypeError: Cannot redefine property: "x" (Chrome) +``` + +## Tipo de Erro + +{{jsxref("TypeError")}} + +## O que deu errado? + +Foi feita a tentativa de redefinir uma propriedade, mas essa propriedade [não é configurável](/pt-BR/docs/Web/JavaScript/Data_structures#properties). O +atributo `configurable` controla se a propriedade pode ser deletada do +objeto e se seus atributos (Exceto `writable`) podem ser alterados. +Geralmente, propriedades de um objeto criado por um [inicializador de objeto](/pt-BR/docs/Web/JavaScript/Reference/Operators/Object_initializer) +são configuráveis. Contudo, por exemplo, ao usar {{jsxref("Object.defineProperty()")}}, a propriedade não é configurável por padrão. + +## Exemplos + +### Propriedades não configuráveis criadas por `Object.defineProperty` + +{{jsxref("Object.defineProperty()")}} cria uma propriedade não configurável se você +não especificá-las como configurável. + +```js example-bad +var obj = Object.create({}); +Object.defineProperty(obj, "foo", {value: "bar"}); + +Object.defineProperty(obj, "foo", {value: "baz"}); +// TypeError: can't redefine non-configurable property "foo" +``` + +Você vai precisar alterar a propriedade "foo" para configurável, se você pretende redefini-la +posteriormente no código. + +```js example-good +var obj = Object.create({}); +Object.defineProperty(obj, "foo", {value: "bar", configurable: true}); +Object.defineProperty(obj, "foo", {value: "baz", configurable: true}); +``` + +## Veja também + +- [\[\[Configurable\]\]](/pt-BR/docs/Web/JavaScript/Data_structures#properties) +- {{jsxref("Object.defineProperty()")}} -- cgit v1.2.3-54-g00ecf