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 object1 = {
property1: 42,
};
const proto1 = Reflect.getPrototypeOf(object1);
console.log(proto1);
// Expected output: Object { }
console.log(Reflect.getPrototypeOf(proto1));
// Expected output: null
Syntax
Reflect.getPrototypeOf(target)
Parameter
target
-
Das Zielobjekt, dessen Prototyp abgerufen werden soll.
Rückgabewert
Der Prototyp des angegebenen Objekts, der entweder ein Objekt oder null
sein kann.
Ausnahmen
TypeError
-
Wird ausgelöst, wenn
target
kein Objekt ist.
Beschreibung
Reflect.getPrototypeOf()
bietet die reflexive Semantik zum Abrufen des Prototyps eines Objekts. Der einzige Unterschied zu Object.getPrototypeOf()
besteht darin, wie nicht-Objekt-Ziele behandelt werden. Reflect.getPrototypeOf()
löst einen TypeError
aus, wenn das Ziel kein Objekt ist, wohingegen Object.getPrototypeOf()
es in ein Objekt umwandelt.
Reflect.getPrototypeOf()
ruft die [[GetPrototypeOf]]
interne Objektmethode des target
ab.
Beispiele
Verwendung von Reflect.getPrototypeOf()
Reflect.getPrototypeOf({}); // Object.prototype
Reflect.getPrototypeOf(Object.prototype); // null
Reflect.getPrototypeOf(Object.create(null)); // null
Unterschied zu Object.getPrototypeOf()
// 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® 2025 Language Specification # sec-reflect.getprototypeof |
Browser-Kompatibilität
BCD tables only load in the browser