aboutsummaryrefslogtreecommitdiff
path: root/files/ca/web/javascript/reference/errors/nomes-lectura
diff options
context:
space:
mode:
Diffstat (limited to 'files/ca/web/javascript/reference/errors/nomes-lectura')
-rw-r--r--files/ca/web/javascript/reference/errors/nomes-lectura/index.html78
1 files changed, 78 insertions, 0 deletions
diff --git a/files/ca/web/javascript/reference/errors/nomes-lectura/index.html b/files/ca/web/javascript/reference/errors/nomes-lectura/index.html
new file mode 100644
index 0000000000..30c70c40dd
--- /dev/null
+++ b/files/ca/web/javascript/reference/errors/nomes-lectura/index.html
@@ -0,0 +1,78 @@
+---
+title: 'TipusError: "x" es només de lectura'
+slug: Web/JavaScript/Reference/Errors/Nomes-Lectura
+tags:
+ - Errors
+ - JavaScript
+ - TypeError
+translation_of: Web/JavaScript/Reference/Errors/Read-only
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="Missatge">Missatge</h2>
+
+<pre class="syntaxbox">TipusError: "x" es només de lectura (Firefox)
+TipusError: 0 es només de lectura (Firefox)
+TipusError: No es pot fer l'assignació a la propietat 'x' de #&lt;Object&gt; que es només de lectura (Chrome)
+TipusError: No es pot fer l'assignació a la propietat '0' de [object Array] (Chrome)
+</pre>
+
+<h2 id="Tipus_d'error">Tipus d'error</h2>
+
+<p>{{jsxref("TypeError")}}</p>
+
+<h2 id="Qué_ha_anat_malament">Qué ha anat malament?</h2>
+
+<p>La variable global o propietat de l'objecte a la qual s'ha volgut fer l'assignació es només de lectura. (Tècnicament, es una <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty#Writable_attribute">propietat de no-escriptura</a>.)</p>
+
+<p>Aquest error succeeix només en <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">codi en mode estricte</a>. En codi en mode no estricte, l'assignació es ignorada de manera silenciosa.</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<h3 id="Casos_invàlids">Casos invàlids</h3>
+
+<p>Propietats de només lectura no son súper comuns, però es poden donar quan es fa servir {{jsxref("Object.defineProperty()")}} o {{jsxref("Object.freeze()")}}.</p>
+
+<pre class="brush: js example-bad">'use strict';
+var obj = Object.freeze({name: 'Elsa', score: 157});
+obj.score = 0; // TypeError
+
+'use strict';
+Object.defineProperty(this, 'LUNG_COUNT', {value: 2, writable: false});
+LUNG_COUNT = 3; // TypeError
+
+'use strict';
+var frozenArray = Object.freeze([0, 1, 2]);
+frozenArray[0]++; // TypeError
+</pre>
+
+<p>També hi ha unes poques propietats de només lectura en la construcció de JavaScript. Potser que hagis provat de redefinir una constant matemàtica.</p>
+
+<pre class="brush: js example-bad">'use strict';
+Math.PI = 4; // TypeError</pre>
+
+<p>Ho sentim, no pots fer això.</p>
+
+<p>La variable global <code>undefined</code> també es només de lectura, llavors no pots silenciar l'infame error "undefined no es una funció" fent això:</p>
+
+<pre class="brush: js example-bad">'use strict';
+undefined = function() {}; // TypeError: "undefined" es només de lectura
+</pre>
+
+<h3 id="Valid_cases">Valid cases</h3>
+
+<pre class="brush: js example-good">'use strict';
+var obj = Object.freeze({name: 'Score', points: 157});
+obj = {name: obj.name, points: 0}; // reemplaçant-ho amb un nou objecte funciona
+
+'use strict';
+var LUNG_COUNT = 2; // Una `var` funciona, perque no es de només lectura
+LUNG_COUNT = 3; // ok (anatòmicament potser, però poc probable)
+</pre>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li>{{jsxref("Object.defineProperty()")}}</li>
+ <li>{{jsxref("Object.freeze()")}}</li>
+</ul>