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

TypeError: kann Prototyp dieses Objekts nicht setzen - 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: kann Prototyp dieses Objekts nicht setzen

Die JavaScript-Ausnahme "kann Prototyp dieses Objekts nicht setzen" tritt auf, wenn versucht wird, den Prototyp eines Objekts zu setzen, dessen Prototyp jedoch eingefroren ist. Dies kann der Fall sein, wenn es sich um ein eingebautes unvernderliches Prototypobjekt handelt oder wenn es nicht erweiterbar ist.

In diesem Artikel

Nachricht

TypeError: Immutable prototype object 'Object.prototype' cannot have their prototype set (V8-based)
TypeError: #<Object> is not extensible (V8-based)
TypeError: can't set prototype of this object (Firefox)
TypeError: Cannot set prototype of immutable prototype object (Safari)
TypeError: Attempted to assign to readonly property. (Safari)

Fehlertyp

TypeError

Was ist schiefgelaufen?

Sie verwenden eine der Methoden zur Mutierung von Prototypen, insbesondere Object.setPrototypeOf(), auf einem Objekt, dessen Prototyp unvernderlich ist. Einige eingebaute Objekte haben aus Sicherheitsgrnden unvernderliche Prototypen, wie Object.prototype und window. Nutzerobjekte knnen auch verhindern, dass Prototypennderungen vorgenommen werden, indem sie Object.preventExtensions(), Object.seal(), oder Object.freeze() verwenden.

Beispiele

Prototyp eines eingebauten Objekts ndern

Einige wenige eingebaute Objekte haben unvernderliche Prototypen. Zum Beispiel knnen Sie den Prototyp von Object.prototype nicht ndern:

js
Object.setPrototypeOf(Object.prototype, {});

Dies verhindert, dass Sie das Verhalten aller Objekte im System beliebig ndern knnen. Der Prototyp von Object.prototype ist immer null. Andere eingebaute Prototypobjekte wie Function.prototype und Array.prototype sind jedoch standardmig in dieser Hinsicht nicht geschtzt.

Prototyp eines nicht erweiterbaren Objekts ndern

Wenn Sie ein Objekt nicht erweiterbar machen, knnen Sie auch seinen Prototyp nicht ndern:

js
const obj = {};
Object.preventExtensions(obj);
Object.setPrototypeOf(obj, {});
// TypeError: can't set prototype of this object

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page