aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathália Pissuti <nathaliapissuti@gmail.com>2021-10-19 08:53:02 -0300
committerGitHub <noreply@github.com>2021-10-19 08:53:02 -0300
commitdecf6af3090f4ffb7adf63734381c60ac2809a22 (patch)
tree22f5282fea6115776400870e743bc7a429eeb06a
parent2413c25ab69885be5e296a9565ef111cc717ebc7 (diff)
downloadtranslated-content-decf6af3090f4ffb7adf63734381c60ac2809a22.tar.gz
translated-content-decf6af3090f4ffb7adf63734381c60ac2809a22.tar.bz2
translated-content-decf6af3090f4ffb7adf63734381c60ac2809a22.zip
Javascript reference error cant_define_property_object_not_extensible page in pt-br (#2723)
-rw-r--r--files/pt-br/web/javascript/reference/errors/cant_define_property_object_not_extensible/index.md85
1 files changed, 85 insertions, 0 deletions
diff --git a/files/pt-br/web/javascript/reference/errors/cant_define_property_object_not_extensible/index.md b/files/pt-br/web/javascript/reference/errors/cant_define_property_object_not_extensible/index.md
new file mode 100644
index 0000000000..97ea4b799e
--- /dev/null
+++ b/files/pt-br/web/javascript/reference/errors/cant_define_property_object_not_extensible/index.md
@@ -0,0 +1,85 @@
+---
+title: 'TypeError: can''t define property "x": "obj" is not extensible'
+slug: Web/JavaScript/Reference/Errors/Cant_define_property_object_not_extensible
+tags:
+ - Error
+ - Errors
+ - JavaScript
+ - TypeError
+---
+{{jsSidebar("Errors")}}
+
+A exceção de modo strict do Javascript "can't define property "x": "obj" is not extensible" ocorre
+quando {{jsxref("Object.preventExtensions()")}} marcou um objeto como não extensível,
+de modo que ele não terá propriedades além das que ele tinha no momento em que foi marcado
+como não extensível.
+
+## Mensagem
+
+```js
+TypeError: Cannot create property for a non-extensible object (Edge)
+TypeError: can't define property "x": "obj" is not extensible (Firefox)
+TypeError: Cannot define property: "x", object is not extensible. (Chrome)
+```
+
+## Tipo de Erro
+
+{{jsxref("TypeError")}}
+
+## O que deu errado?
+
+Geralmente, um objeto é extensível e novas propriedades podem ser adicionadas a ele. Contudo,
+neste caso {{jsxref("Object.preventExtensions()")}} marcou o objeto como não extensível,
+de modo que ele não terá propriedades além das que ele tinha no momento em que foi marcado
+como não extensível.
+
+## Exemplos
+
+### Adicionando uma nova propriedade para um objeto não extensível
+
+No [modo strict](/pt-BR/docs/Web/JavaScript/Reference/Strict_mode),
+a tentativa de adicionar uma nova propriedade em um objeto não extensível
+lança um `TypeError`. No [modo sloppy](/pt-BR/docs/Glossary/Sloppy_mode), a adição da propriedade "x" é
+silenciosamente ignorada.
+
+```js example-bad
+'use strict';
+
+var obj = {};
+Object.preventExtensions(obj);
+
+obj.x = 'foo';
+// TypeError: can't define property "x": "obj" is not extensible
+```
+
+Em ambos os casos, [modo strict](/pt-BR/docs/Web/JavaScript/Reference/Strict_mode) e
+[modo sloppy](/pt-BR/docs/Glossary/Sloppy_mode), chamar {{jsxref("Object.defineProperty()")}}
+lança uma exceção quando é adicionada uma nova propriedade em um objeto não extensível.
+
+```js example-bad
+var obj = { };
+Object.preventExtensions(obj);
+
+Object.defineProperty(obj,
+ 'x', { value: "foo" }
+);
+// TypeError: can't define property "x": "obj" is not extensible
+```
+
+Para corrigir este erro, você precisa remover todas as chamadas para {{jsxref("Object.preventExtensions()")}},
+ou movê-las para uma posição para que a propriedade seja adicionada antes e apenas depois o objeto seja marcado
+como não extensível. Naturalmente, você pode remover a tentativa de adicionar a propriedade, se você não
+precisar dela.
+
+```js example-good
+'use strict';
+
+var obj = {};
+obj.x = 'foo'; // adiciona a propriedade antes e só então previne extensões
+
+Object.preventExtensions(obj);
+```
+
+## Veja também
+
+- {{jsxref("Object.preventExtensions()")}}