JavaScript/Objekte/Object/setPrototypeOf

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Die Object.setPrototypeOf()-Methode setzt den Prototypen des Objekts neu oder auf null.[1][2]

Diese Funktion ist in EcmaScript 6 neu aufgenommen worden und ersetzt die Zuweisung an das __proto__ Property, die in Chrome, Firefox, Opera und Safari möglich ist.

Empfehlung: Vermeiden Sie das Setzen des [[Prototype]] eines Objekts, da dies in jedem Browser und in jeder JavaScript-Engine zu einem erheblichen Performance-Verlust führt.

Diese Auswirkungen beschränken sich nicht auf das Statement obj.__proto__ = ..., sondern betreffen jeden Code, der Zugang zu jeglichen Objekten hat, deren [[Prototype]] geändert wurde.

Erzeugen Sie lieber ein neues Object mit Object.create().


Beispiel
Object.setPrototypeof(obj, newProto)

Folgende Parameter sind erforderlich:

  • obj: Objekt, dessen Prototyp geändert werden soll
  • newProto: Objekt, das als neuer Prototyp für obj dienen soll


Weblinks

  1. ECMAScript 2015 (6th Edition, ECMA-262): object.setprototypeof()
  2. MDN: object.setprototypeof()