Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die Object.create() statische Methode erstellt ein neues Objekt, indem sie ein vorhandenes Objekt als Prototyp des neu erstellten Objekts verwendet.
Das Objekt, das der Prototyp des neu erstellten Objekts sein sollte.
propertiesObject OptionalFalls angegeben und nicht undefined, ein Objekt, dessen aufzählbare eigene Eigenschaften Eigenschaftsdeskriptoren angeben, die dem neu erstellten Objekt mit den entsprechenden Eigenschaftsnamen hinzugefügt werden sollen. Diese Eigenschaften entsprechen dem zweiten Argument von Object.defineProperties().
Ein neues Objekt mit dem angegebenen Prototyp-Objekt und den Eigenschaften.
Wird ausgelöst, wenn proto weder null noch ein Object ist.
Nachfolgend ist ein Beispiel, wie Object.create() verwendet wird, um klassische Vererbung zu erreichen. Dies ist für eine einzelne Vererbung, was JavaScript unterstützt.
Beachten Sie, dass es Vorsichtsmaßnahmen gibt, auf die Sie bei der Verwendung von create() achten müssen, wie z.B. das erneute Hinzufügen der constructor-Eigenschaft, um die korrekten Semantiken sicherzustellen. Obwohl Object.create() als leistungsstärker als das Mutieren des Prototyps mit Object.setPrototypeOf() betrachtet wird, ist der Unterschied tatsächlich vernachlässigbar, wenn noch keine Instanzen erstellt wurden und auf Eigenschaften noch nicht optimiert zugegriffen wurde. Im modernen Code sollte in jedem Fall die class-Syntax bevorzugt werden.
Object.create() ermöglicht eine fein abgestimmte Kontrolle über den Objekt-Erstellungsprozess. Die Objektinitialisierer-Syntax ist tatsächlich ein Syntaxzucker von Object.create(). Mit Object.create() können wir Objekte mit einem bestimmten Prototyp und auch mit einigen Eigenschaften erstellen. Beachten Sie, dass der zweite Parameter Schlüssel auf Eigenschaftsdeskriptoren abbildet — das bedeutet, dass Sie die Aufzählbarkeit, Konfigurierbarkeit usw. jeder Eigenschaft ebenfalls steuern können, was in Objektinitialisierern nicht möglich ist.
Mit Object.create() können wir ein Objekt mit null als Prototyp erstellen. Die entsprechende Syntax in Objektinitialisierern wäre der __proto__-Schlüssel.
Standardmäßig sind Eigenschaften nicht schreibbar, aufzählbar oder konfigurierbar.
Um eine Eigenschaft mit denselben Attributen wie in einem Initialisierer anzugeben, muss writable, enumerable und configurable explizit angegeben werden.
Sie können Object.create() verwenden, um das Verhalten des new-Operators nachzuahmen.
Natürlich kann, wenn es tatsächlichen Initialisierungscode in der Constructor-Funktion gibt, die Object.create()-Methode diesen nicht wiedergeben.
| ECMAScript® 2027 Language Specification # sec-object.create |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.