Reflect.get()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2016 browserübergreifend verfügbar.
Die Reflect.get() statische Methode ähnelt der Property-Accessor Syntax, ist jedoch als Funktion implementiert.
Probieren Sie es aus
const object = {
x: 1,
y: 2,
};
console.log(Reflect.get(object, "x"));
// Expected output: 1
const array = ["zero", "one"];
console.log(Reflect.get(array, 1));
// Expected output: "one"
Syntax
Reflect.get(target, propertyKey)
Reflect.get(target, propertyKey, receiver)
Parameter
target-
Das Zielobjekt, von dem die Eigenschaft abgerufen werden soll.
propertyKey-
Der Name der abzurufenden Eigenschaft.
receiverOptional-
Der Wert von
this, der für den Aufruf vontargetbereitgestellt wird, falls ein Getter aufgerufen wird. Standardmäßig ist diestarget.
Rückgabewert
Der Wert der Eigenschaft.
Ausnahmen
TypeError-
Wird ausgelöst, wenn
targetkein Objekt ist.
Beschreibung
Reflect.get() bietet die reflektierende Semantik eines Property-Zugriffs. Das bedeutet, Reflect.get(target, propertyKey, receiver) ist semantisch äquivalent zu:
target[propertyKey];
Beachten Sie, dass bei einem normalen Property-Zugriff target und receiver beobachtbar dasselbe Objekt wären.
Reflect.get() ruft die [[Get]] objektinterne Methode von target auf.
Beispiele
>Verwendung von Reflect.get()
// Object
const obj1 = { x: 1, y: 2 };
Reflect.get(obj1, "x"); // 1
// Array
Reflect.get(["zero", "one"], 1); // "one"
// Proxy with a get handler
const obj2 = new Proxy(
{ p: 1 },
{
get(t, k, r) {
return `${k}bar`;
},
},
);
Reflect.get(obj2, "foo"); // "foobar"
// Proxy with get handler and receiver
const obj3 = new Proxy(
{ p: 1, foo: 2 },
{
get(t, prop, receiver) {
return `${receiver[prop]}bar`;
},
},
);
Reflect.get(obj3, "foo", { foo: 3 }); // "3bar"
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-reflect.get> |