aboutsummaryrefslogtreecommitdiff
path: root/files/ca/web/javascript/reference/global_objects/object/isfrozen/index.html
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:41:15 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:41:15 -0500
commit4b1a9203c547c019fc5398082ae19a3f3d4c3efe (patch)
treed4a40e13ceeb9f85479605110a76e7a4d5f3b56b /files/ca/web/javascript/reference/global_objects/object/isfrozen/index.html
parent33058f2b292b3a581333bdfb21b8f671898c5060 (diff)
downloadtranslated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.gz
translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.bz2
translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.zip
initial commit
Diffstat (limited to 'files/ca/web/javascript/reference/global_objects/object/isfrozen/index.html')
-rw-r--r--files/ca/web/javascript/reference/global_objects/object/isfrozen/index.html182
1 files changed, 182 insertions, 0 deletions
diff --git a/files/ca/web/javascript/reference/global_objects/object/isfrozen/index.html b/files/ca/web/javascript/reference/global_objects/object/isfrozen/index.html
new file mode 100644
index 0000000000..46c2e24be2
--- /dev/null
+++ b/files/ca/web/javascript/reference/global_objects/object/isfrozen/index.html
@@ -0,0 +1,182 @@
+---
+title: Object.isFrozen()
+slug: Web/JavaScript/Reference/Global_Objects/Object/isFrozen
+translation_of: Web/JavaScript/Reference/Global_Objects/Object/isFrozen
+---
+<div>{{JSRef}}</div>
+
+<p>El mètode <code><strong>Object.isFrozen()</strong></code> determina si un objecte està congelat.</p>
+
+<h2 id="Sintaxi">Sintaxi</h2>
+
+<pre class="syntaxbox"><code>Object.isFrozen(<var>obj</var>)</code></pre>
+
+<h3 id="Paràmetres">Paràmetres</h3>
+
+<dl>
+ <dt><code>obj</code></dt>
+ <dd>L'objecte que es comprovarà si està congelat o no.</dd>
+</dl>
+
+<h2 id="Descripció">Descripció</h2>
+
+<p>Un objecte està congelat si i només si no és {{jsxref("Object.isExtensible()", "extensible", "", 1)}}, cap de les seves propietats és configurable, i cap de les seves propietats de dades (és a dir, propietats que no són <em>accessor</em> amb components getter o setter) that is, properties which are not accessor properties with getter or setter components) es poden escriure (modificar el seu valor).</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<pre class="brush: js">// Els objectes nous són extensibles, així que no estan congelats.
+Object.isFrozen({}); // === false
+
+// Un objecte buit que no és extensible està congelat ja que no te propietats que trenquin les restriccions.
+var vacuouslyFrozen = Object.preventExtensions({});
+Object.isFrozen(vacuouslyFrozen); // === true
+
+// Un objecte nou amb una propietat és extensible, i per tant no està congelat.
+var oneProp = { p: 42 };
+Object.isFrozen(oneProp); // === false
+
+// Fer-lo no extensible no el fa congelat,
+// perquè la propietat encara és configurable (i permet l'escriptura).
+Object.preventExtensions(oneProp);
+Object.isFrozen(oneProp); // === false
+
+// ...però, un altre cop, si eliminem la propietat ens trobem amb un objecte buit congelat.
+delete oneProp.p;
+Object.isFrozen(oneProp); // === true
+
+// Un objecte no extensible amb una propietat que no permeti l'escriptura però sí que es configurable no està congelat.
+var nonWritable = { e: 'plep' };
+Object.preventExtensions(nonWritable);
+Object.defineProperty(nonWritable, 'e', { writable: false }); // fer que la propietat no permeti l'escriptura
+Object.isFrozen(nonWritable); // === false
+
+// Fer aquesta propietat no configurable fa que l'objecte estigui congelat
+Object.defineProperty(nonWritable, 'e', { configurable: false }); // fer la propietat no configurable
+Object.isFrozen(nonWritable); // === true
+
+// Un objecte no extensible amb una propietat no configurable però que si permeti l'escriptura tampoc està congelat.
+var nonConfigurable = { release: 'the kraken!' };
+Object.preventExtensions(nonConfigurable);
+Object.defineProperty(nonConfigurable, 'release', { configurable: false });
+Object.isFrozen(nonConfigurable); // === false
+
+// Canviar aquesta propietat per a que no permeti l'escriptura fa que l'objecte estigui congelat.
+Object.defineProperty(nonConfigurable, 'release', { writable: false });
+Object.isFrozen(nonConfigurable); // === true
+
+// Un objecte amb una propietat accessor no extensible no està congelat.
+var accessor = { get food() { return 'yum'; } };
+Object.preventExtensions(accessor);
+Object.isFrozen(accessor); // === false
+
+// ...però si la propietat es fa no configurable l'objecte esdevé congelat.
+Object.defineProperty(accessor, 'food', { configurable: false });
+Object.isFrozen(accessor); // === true
+
+// La forma més fàcil, però, d'aconseguir congelar un objecte és cridant el mètode Object.freeze al mateix objecte.
+var frozen = { 1: 81 };
+Object.isFrozen(frozen); // === false
+Object.freeze(frozen);
+Object.isFrozen(frozen); // === true
+
+// Per definició, un objecte congelat no és extensible.
+Object.isExtensible(frozen); // === false
+
+// També per definició, un objecte congelat està segellat.
+Object.isSealed(frozen); // === true
+</pre>
+
+<h2 id="Notes">Notes</h2>
+
+<p>A l'EcmaScript 5, si l'argument passat a aquest mètode no és un objecte (un valor primitiu), llençarà un <a href="https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/TypeError" title="L'objecte TypeError representa un error quan el valor no és del tipus esperat."><code>TypeError</code></a>. A l'EcmaScript 6, un argument que no sigui un objecte serà tractat com si fós un objecte congelat ordinari, i simplement el retornarà.</p>
+
+<pre class="brush: js">Object.isFrozen(1);
+// TypeError: 1 no és un objecte (codi EcmaScript 5)
+
+Object.isFrozen(1);
+// true (codi EcmaScript 6)
+</pre>
+
+<h2 id="Especificacions">Especificacions</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Especificació</th>
+ <th scope="col">Estat</th>
+ <th scope="col">Comentaris</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-15.2.3.12', 'Object.isFrozen')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td>Definició inicial. Implementat a JavaScript 1.8.5.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-object.isfrozen', 'Object.isFrozen')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td> </td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>
+
+<div>{{CompatibilityTable}}</div>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>{{CompatChrome("6")}}</td>
+ <td>{{CompatGeckoDesktop("2.0")}}</td>
+ <td>{{CompatIE("9")}}</td>
+ <td>{{CompatOpera("12")}}</td>
+ <td>{{CompatSafari("5.1")}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Android</th>
+ <th>Chrome for Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="Vegeu_també">Vegeu també</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>