[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Errors/Read-only [Back]  [Original]

TypeError: "x" ist schreibgeschtzt - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

TypeError: "x" ist schreibgeschtzt

Die JavaScript-strict mode-only Ausnahme "ist schreibgeschtzt" tritt auf, wenn einer globalen Variable oder einem Objekteigenschaft ein schreibgeschtzter Wert zugewiesen wurde.

In diesem Artikel

Meldung

TypeError: Cannot assign to read only property 'x' of #<Object> (V8-based)
TypeError: "x" is read-only (Firefox)
TypeError: Attempted to assign to readonly property. (Safari)

Fehlertyp

TypeError nur im strict mode.

Was ist schiefgelaufen?

Der globalen Variable oder der Objekteigenschaft, der zugewiesen wurde, ist eine schreibgeschtzte Eigenschaft. (Technisch gesehen ist es eine nicht-schreibbare Dateneigenschaft.)

Dieser Fehler tritt nur im strict mode code auf. In nicht-strict code wird die Zuweisung stillschweigend ignoriert.

Beispiele

Ungltige Flle

Schreibgeschtzte Eigenschaften sind nicht sehr hufig, knnen aber mit Object.defineProperty() oder Object.freeze() erstellt werden.

js
"use strict";
const 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");
const frozenArray = Object.freeze([0, 1, 2]);
frozenArray[0]++; // TypeError

Es gibt auch einige schreibgeschtzte Eigenschaften, die in JavaScript eingebaut sind. Vielleicht haben Sie versucht, eine mathematische Konstante neu zu definieren.

js
"use strict";
Math.PI = 4; // TypeError

Entschuldigung, das knnen Sie nicht tun.

Die globale Variable undefined ist ebenfalls schreibgeschtzt, sodass Sie den berchtigten Fehler "undefined is not a function" nicht durch Folgendes unterdrcken knnen:

js
"use strict";
undefined = function () {}; // TypeError: "undefined" is read-only

Gltige Flle

js
"use strict";
let obj = Object.freeze({ name: "Score", points: 157 });
obj = { name: obj.name, points: 0 }; // replacing it with a new object works

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page