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 statische Methode Reflect.get() funktioniert wie die Syntax für den Eigenschaftszugriff, ist jedoch eine Funktion.
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, dessen Eigenschaft abgerufen werden soll.
propertyKey-
Der Name der abzurufenden Eigenschaft.
receiverOptional-
Der Wert von
this, der beim Aufruf fürtargetbereitgestellt wird, wenn 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() stellt die reflektive Semantik eines Eigenschaftszugriffs bereit. Das heißt, Reflect.get(target, propertyKey, receiver) ist semantisch äquivalent zu:
target[propertyKey];
Beachten Sie, dass bei einem normalen Eigenschaftszugriff target und receiver dasselbe Objekt wären.
Reflect.get() ruft die objektinterne Methode [[Get]] von target auf.
Beispiele
>Reflect.get() verwenden
// 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> |