Reflect.apply()

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.apply() ruft eine Ziel-Funktion mit den angegebenen Argumenten auf.

Probieren Sie es aus

console.log(Reflect.apply(Math.floor, undefined, [1.75]));
// Expected output: 1

console.log(
  Reflect.apply(String.fromCharCode, undefined, [104, 101, 108, 108, 111]),
);
// Expected output: "hello"

console.log(
  Reflect.apply(RegExp.prototype.exec, /ab/, ["confabulation"]).index,
);
// Expected output: 4

console.log(Reflect.apply("".charAt, "ponies", [3]));
// Expected output: "i"

Syntax

js
Reflect.apply(target, thisArgument, argumentsList)

Parameter

target

Die Ziel-Funktion, die aufgerufen werden soll.

thisArgument

Der Wert von this, der beim Aufruf von target bereitgestellt wird.

argumentsList

Ein array-ähnliches Objekt, das die Argumente angibt, mit denen target aufgerufen werden soll.

Rückgabewert

Das Ergebnis des Aufrufs der angegebenen target-Funktion mit dem spezifizierten this-Wert und den Argumenten.

Ausnahmen

TypeError

Wird ausgelöst, wenn target keine Funktion ist oder argumentsList kein Objekt ist.

Beschreibung

Reflect.apply() bietet die reflexive Semantik eines Funktionsaufrufs. Das bedeutet, Reflect.apply(target, thisArgument, argumentsList) ist semantisch äquivalent zu:

js
Math.floor.apply(null, [1.75]);
Reflect.apply(Math.floor, null, [1.75]);

Die einzigen Unterschiede sind:

  • Reflect.apply() verwendet die Funktion, die aufgerufen werden soll, als Parameter target anstelle des this-Kontexts.
  • Reflect.apply() löst einen Fehler aus, wenn argumentsList weggelassen wird, anstatt standardmäßig ohne Parameter aufzurufen.

Reflect.apply() ruft die [[Call]]-interne Objektmethode von target auf.

Beispiele

Verwendung von Reflect.apply()

js
Reflect.apply(Math.floor, undefined, [1.75]);
// 1;

Reflect.apply(String.fromCharCode, undefined, [104, 101, 108, 108, 111]);
// "hello"

Reflect.apply(RegExp.prototype.exec, /ab/, ["confabulation"]).index;
// 4

Reflect.apply("".charAt, "ponies", [3]);
// "i"

Spezifikationen

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

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
apply

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch