Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. JavaScript-Fehlerreferenz
  5. TypeError: kann Prototyp dieses Objekts nicht setzen

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

View in EnglishAlways 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 unveränderliches Prototypobjekt handelt oder wenn esnicht erweiterbar ist.

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, insbesondereObject.setPrototypeOf(), auf einem Objekt, dessen Prototyp unveränderlich ist. Einige eingebaute Objekte haben aus Sicherheitsgründen unveränderliche Prototypen, wieObject.prototype undwindow. Nutzerobjekte können auch verhindern, dass Prototypenänderungen vorgenommen werden, indem sieObject.preventExtensions(),Object.seal(), oderObject.freeze() verwenden.

Beispiele

Prototyp eines eingebauten Objekts ändern

Einige wenige eingebaute Objekte haben unveränderliche Prototypen. Zum Beispiel können Sie den Prototyp vonObject.prototype nicht ändern:

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

Dies verhindert, dass Sie das Verhalten aller Objekte im System beliebig ändern können. Der Prototyp vonObject.prototype ist immernull. Andere eingebaute Prototypobjekte wieFunction.prototype undArray.prototype sind jedoch standardmäßig in dieser Hinsicht nicht geschützt.

Prototyp eines nicht erweiterbaren Objekts ändern

Wenn Sie ein Objekt nicht erweiterbar machen, können 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

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp