diff options
| author | Florian Dieminger <me@fiji-flo.de> | 2021-02-11 18:20:22 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-11 18:20:22 +0100 |
| commit | 999e51572c093be901d6c8f942feb76038ae940c (patch) | |
| tree | 0b2242d6df50748abf3f11c717211e8bbcf3d45e /files/de/web/javascript/reference/errors/read-only/index.html | |
| parent | 747e709ad97c5782af29688f52c8105c08d9a323 (diff) | |
| parent | 12b585b8e60a2877ff64dc6dc5ab058c43652f47 (diff) | |
| download | translated-content-999e51572c093be901d6c8f942feb76038ae940c.tar.gz translated-content-999e51572c093be901d6c8f942feb76038ae940c.tar.bz2 translated-content-999e51572c093be901d6c8f942feb76038ae940c.zip | |
Merge pull request #55 from fiji-flo/unslugging-de
Unslugging de
Diffstat (limited to 'files/de/web/javascript/reference/errors/read-only/index.html')
| -rw-r--r-- | files/de/web/javascript/reference/errors/read-only/index.html | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/files/de/web/javascript/reference/errors/read-only/index.html b/files/de/web/javascript/reference/errors/read-only/index.html new file mode 100644 index 0000000000..76a7d79e27 --- /dev/null +++ b/files/de/web/javascript/reference/errors/read-only/index.html @@ -0,0 +1,79 @@ +--- +title: 'TypeError: "x" is read-only' +slug: Web/JavaScript/Reference/Errors/Read-only +tags: + - Errors + - JavaScript + - TypeError +translation_of: Web/JavaScript/Reference/Errors/Read-only +original_slug: Web/JavaScript/Reference/Fehler/Read-only +--- +<div>{{jsSidebar("Errors")}}</div> + +<h2 id="Fehlermeldung">Fehlermeldung</h2> + +<pre class="syntaxbox">TypeError: "x" is read-only (Firefox) +TypeError: 0 is read-only (Firefox) +TypeError: Cannot assign to read only property 'x' of #<Object> (Chrome) +TypeError: Cannot assign to read only property '0' of [object Array] (Chrome) +</pre> + +<h2 id="Fehlertyp">Fehlertyp</h2> + +<p>{{jsxref("TypeError")}}</p> + +<h2 id="Was_ist_falsch_gelaufen">Was ist falsch gelaufen?</h2> + +<p>Die globale Variable oder Objekteigenschaften werden als nur lesbare Eigenschaften definiert (technisch wird das mit der <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty#Writable_attribute"><code>writable</code> Eigenschaft</a> erreicht).</p> + +<p>Der Fehler tritt nur im <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict mode</a> auf. Im normalen Modus wird eine Zuweisung still ignoriert.</p> + +<h2 id="Beispiele">Beispiele</h2> + +<h3 id="Nicht_valide_Fälle">Nicht valide Fälle</h3> + +<p>Nur lesbare Eigenschaften sind nicht sehr weit verbreitet, aber sie können mit {{jsxref("Object.defineProperty()")}} oder {{jsxref("Object.freeze()")}} erstellt werden.</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>Zudem gibt es ein paar standard Eigenschaft in JavaScript, die nicht überschrieben werden können. Da währen zum Beispiel mathematische Konstanten.</p> + +<pre class="brush: js example-bad">'use strict'; +Math.PI = 4; // TypeError +</pre> + +<p>Die globale Variable <code>undefined</code> ist auch nur lesbar, sodass der berüchtigte Fehler "undefined is not a function" nicht wie folgt umgangen werden kann:</p> + +<pre class="brush: js example-bad">'use strict'; +undefined = function() {}; // TypeError: "undefined" is read-only +</pre> + +<h3 id="Valide_Fälle">Valide Fälle</h3> + +<pre class="brush: js example-good">'use strict'; +var obj = Object.freeze({name: 'Score', points: 157}); +obj = {name: obj.name, points: 0}; // replacing it with a new object works + +'use strict'; +var LUNG_COUNT = 2; // a `var` works, because it's not read-only +LUNG_COUNT = 3; // ok (anatomically unlikely, though) +</pre> + +<h2 id="Siehe_auch">Siehe auch</h2> + +<ul> + <li>{{jsxref("Object.defineProperty()")}}</li> + <li>{{jsxref("Object.freeze()")}}</li> + <li><a href="https://www.answers.com/Q/Which_animals_have_three_lungs">"Which animals have three lungs?" on answers.com</a></li> +</ul> |
