Reflect.get()

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 Reflect.get() statische Methode funktioniert ähnlich wie die Eigenschafts-Accessor-Syntax, jedoch als Funktion.

Probieren Sie es aus

const object1 = {
  x: 1,
  y: 2,
};

console.log(Reflect.get(object1, "x"));
// Expected output: 1

const array1 = ["zero", "one"];

console.log(Reflect.get(array1, 1));
// Expected output: "one"

Syntax

js
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.

receiver Optional

Der this-Wert, der für den Aufruf an target bereitgestellt wird, falls ein Getter aufgerufen wird.

Rückgabewert

Der Wert der Eigenschaft.

Ausnahmen

TypeError

Wird ausgelöst, wenn target kein Objekt ist.

Beschreibung

Reflect.get() bietet die reflektive Semantik eines Eigenschaftsabrufs. Das bedeutet, Reflect.get(target, propertyKey, receiver) ist semantisch äquivalent zu:

js
target[propertyKey];

Beachten Sie, dass bei einem normalen Eigenschaftszugriff target und receiver offensichtlich dasselbe Objekt wären.

Reflect.get() ruft die [[Get]] interne Objektsmethode von target auf.

Beispiele

Verwendung von Reflect.get()

js
// 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

Specification
ECMAScript® 2025 Language Specification
# sec-reflect.get

Browser-Kompatibilität

Siehe auch