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

View in English Always switch to English

Reflect.getPrototypeOf()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨September 2016⁩.

Die statische Methode Reflect.getPrototypeOf() ist ähnlich wie Object.getPrototypeOf(). Sie gibt das Prototyp-Objekt des angegebenen Objekts zurück.

Probieren Sie es aus

const object = {
  foo: 42,
};

const proto = Reflect.getPrototypeOf(object);

console.log(proto);
// Expected output: Object {  }

console.log(Reflect.getPrototypeOf(proto));
// Expected output: null

Syntax

js
Reflect.getPrototypeOf(target)

Parameter

target

Das Zielobjekt, dessen Prototyp abgerufen werden soll.

Rückgabewert

Das Prototyp-Objekt des angegebenen Objekts, das entweder ein Objekt oder null sein kann.

Ausnahmen

TypeError

Wird ausgelöst, wenn target kein Objekt ist.

Beschreibung

Reflect.getPrototypeOf() bietet die reflektierende Semantik zum Abrufen des Prototyps eines Objekts. Der einzige Unterschied zu Object.getPrototypeOf() besteht darin, wie nicht-objektartige Ziele behandelt werden. Reflect.getPrototypeOf() wirft einen TypeError, wenn das Ziel kein Objekt ist, während Object.getPrototypeOf() es zu einem Objekt konvertiert.

Reflect.getPrototypeOf() ruft die [[GetPrototypeOf]] interne Objektmethode von target auf.

Beispiele

Verwendung von Reflect.getPrototypeOf()

js
Reflect.getPrototypeOf({}); // Object.prototype
Reflect.getPrototypeOf(Object.prototype); // null
Reflect.getPrototypeOf(Object.create(null)); // null

Unterschied zu Object.getPrototypeOf()

js
// Same result for Objects
Object.getPrototypeOf({}); // Object.prototype
Reflect.getPrototypeOf({}); // Object.prototype

// Both throw in ES5 for non-Objects
Object.getPrototypeOf("foo"); // Throws TypeError
Reflect.getPrototypeOf("foo"); // Throws TypeError

// In ES2015 only Reflect throws, Object coerces non-Objects
Object.getPrototypeOf("foo"); // String.prototype
Reflect.getPrototypeOf("foo"); // Throws TypeError

// To mimic the Object ES2015 behavior you need to coerce
Reflect.getPrototypeOf(Object("foo")); // String.prototype

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-reflect.getprototypeof

Browser-Kompatibilität

Siehe auch