aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/web/javascript/reference/global_objects/object/isfrozen/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/pt-br/web/javascript/reference/global_objects/object/isfrozen/index.html')
-rw-r--r--files/pt-br/web/javascript/reference/global_objects/object/isfrozen/index.html172
1 files changed, 172 insertions, 0 deletions
diff --git a/files/pt-br/web/javascript/reference/global_objects/object/isfrozen/index.html b/files/pt-br/web/javascript/reference/global_objects/object/isfrozen/index.html
new file mode 100644
index 0000000000..1cab1b4843
--- /dev/null
+++ b/files/pt-br/web/javascript/reference/global_objects/object/isfrozen/index.html
@@ -0,0 +1,172 @@
+---
+title: Object.isFrozen()
+slug: Web/JavaScript/Reference/Global_Objects/Object/isFrozen
+translation_of: Web/JavaScript/Reference/Global_Objects/Object/isFrozen
+---
+<div>{{JSRef}}</div>
+
+<p>O método <code><strong>Object.isFrozen()</strong></code> determina se um objeto está {{jsxref("Object.freeze()", "frozen", "", 1)}}.</p>
+
+<div>{{EmbedInteractiveExample("pages/js/object-isfrozen.html")}}</div>
+
+
+
+<h2 id="Sintaxe">Sintaxe</h2>
+
+<pre class="syntaxbox"><code>Object.isFrozen(<var>obj</var>)</code></pre>
+
+<h3 id="Parameters">Parameters</h3>
+
+<dl>
+ <dt><code>obj</code></dt>
+ <dd>O objeto que será verificado.</dd>
+</dl>
+
+<h3 id="Return_value">Return value</h3>
+
+<p>Um valor {{jsxref("Boolean")}} indicando se o objeto está frozen.</p>
+
+<h2 id="Descrição">Descrição</h2>
+
+<p>Um objeto estará frozen se, e apenas se, ele não for {{jsxref("Object.isExtensible()", "extensible", "", 1)}}, todas as suas propriedades não são configuráveis e todas suas propriedades de dados (propriedades que não são asessores de propriedades com getters ou setters) não podem ser modificadas.</p>
+
+<h2 id="Examples">Examples</h2>
+
+<pre class="brush: js">// Um novo objeto é extensível, então ele não está frozen.
+Object.isFrozen({}); // === false
+
+// Um objeto vazio que não é extensível
+// é vagamente frozen.
+var vacuouslyFrozen = Object.preventExtensions({});
+Object.isFrozen(vacuouslyFrozen); // === true
+
+// Um novo objeto com uma propriedade também é extensível,
+// portanto não está frozen.
+var oneProp = { p: 42 };
+Object.isFrozen(oneProp); // === false
+
+// Impedir extensões do objeto ainda
+// não o torna frozen, pois a propriedade ainda será
+// configurável (e modificável).
+Object.preventExtensions(oneProp);
+Object.isFrozen(oneProp); // === false
+
+// ...Porém, deletando a propriedade o objeto se tornará
+// vagamente frozen.
+delete oneProp.p;
+Object.isFrozen(oneProp); // === true
+
+// Um objeto não extensível e não modificável,
+// mas com uma propriedade configurável não será frozen.
+var nonWritable = { e: 'plep' };
+Object.preventExtensions(nonWritable);
+Object.defineProperty(nonWritable, 'e', {
+  writable: false
+}); // tornar não modificável
+Object.isFrozen(nonWritable); // === false
+
+// Alterando a propriedade para não configurável
+// tornará o objeto frozen.
+Object.defineProperty(nonWritable, 'e', {
+  configurable: false
+}); // make non-configurable
+Object.isFrozen(nonWritable); // === true
+
+// Um objeto não extensível com uma propriedade não configurável
+// mas modificável não será frozen.
+var nonConfigurable = { release: 'the kraken!' };
+Object.preventExtensions(nonConfigurable);
+Object.defineProperty(nonConfigurable, 'release', {
+  configurable: false
+});
+Object.isFrozen(nonConfigurable); // === false
+
+// Alterando a propriedade para não modificável
+// tornará o objeto frozen.
+Object.defineProperty(nonConfigurable, 'release', {
+  writable: false
+});
+Object.isFrozen(nonConfigurable); // === true
+
+// Um objeto não extensível com um assessor de propriedade
+// configurável não será frozen.
+var accessor = { get food() { return 'yum'; } };
+Object.preventExtensions(accessor);
+Object.isFrozen(accessor); // === false
+
+// ...Mas alterando essa propriedade para não configurável
+// o objeto se tornará frozen.
+Object.defineProperty(accessor, 'food', {
+  configurable: false
+});
+Object.isFrozen(accessor); // === true
+
+// A forma mais fácil para um objeto ser frozen
+// é se o método Object.freeze foi usado nele.
+var frozen = { 1: 81 };
+Object.isFrozen(frozen); // === false
+Object.freeze(frozen);
+Object.isFrozen(frozen); // === true
+
+// Por definição, um objeto frozen não é extensível.
+Object.isExtensible(frozen); // === false
+
+// Também por definição, um objeto frozen estará sealed.
+Object.isSealed(frozen); // === true
+</pre>
+
+<h2 id="Notas">Notas</h2>
+
+<p>No ES5, se o argumento deste método não for um objeot (uma primitiva), ele irá lançar um {{jsxref("TypeError")}}. No ES2015, um argumento que não é objeto será sempre tratado como se fosse um objeto frozen, simplesmente retornando <code>true</code>.</p>
+
+<pre class="brush: js">Object.isFrozen(1);
+// TypeError: 1 is not an object (ES5 code)
+
+Object.isFrozen(1);
+// true (ES2015 code)
+</pre>
+
+<h2 id="Specifications">Specifications</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-15.2.3.12', 'Object.isFrozen')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td>Initial definition. Implemented in JavaScript 1.8.5.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-object.isfrozen', 'Object.isFrozen')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-object.isfrozen', 'Object.isFrozen')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilidade_de_navegadores">Compatibilidade de navegadores</h2>
+
+<div>
+
+
+<p>{{Compat("javascript.builtins.Object.isFrozen")}}</p>
+</div>
+
+<h2 id="Veja_também">Veja também</h2>
+
+<ul>
+ <li>{{jsxref("Object.freeze()")}}</li>
+ <li>{{jsxref("Object.preventExtensions()")}}</li>
+ <li>{{jsxref("Object.isExtensible()")}}</li>
+ <li>{{jsxref("Object.seal()")}}</li>
+ <li>{{jsxref("Object.isSealed()")}}</li>
+</ul>