Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Reflect.apply()

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.apply() ruft eine Zielfunktion 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 aufzurufende Zielfunktion.

thisArgument

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

argumentsList

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

Rückgabewert

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

Ausnahmen

TypeError

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

Beschreibung

Reflect.apply() stellt die reflektive Semantik eines Funktionsaufrufs bereit. Das heißt, Reflect.apply(target, thisArgument, argumentsList) ist semantisch gleichbedeutend mit:

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

Die einzigen Unterschiede sind:

  • Reflect.apply() erhält die aufzurufende Funktion über den Parameter target statt über den this-Kontext.
  • Reflect.apply() löst eine Ausnahme aus, wenn argumentsList weggelassen wird, statt standardmäßig einen Aufruf ohne Argumente auszuführen.

Reflect.apply() ruft die objektinterne Methode [[Call]] von target auf.

Beispiele

Reflect.apply() verwenden

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

Spezifikation
ECMAScript® 2027 Language Specification
# sec-reflect.apply

Browser-Kompatibilität

Siehe auch