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
Reflect.apply(target, thisArgument, argumentsList)
Parameter
target-
Die Zielfunktion, die aufgerufen werden soll.
thisArgument-
Der Wert für
this, der für den Aufruf antargetübergeben wird. argumentsList-
Ein array-ähnliches Objekt, das die Argumente angibt, mit denen
targetaufgerufen werden soll.
Rückgabewert
Das Ergebnis des Aufrufs der angegebenen target-Funktion mit dem angegebenen this-Wert und den Argumenten.
Ausnahmen
TypeError-
Wird ausgelöst, wenn
targetkeine Funktion ist oderargumentsListkein Objekt ist.
Beschreibung
Reflect.apply() bietet die reflexive Semantik eines Funktionsaufrufs. Das heißt, Reflect.apply(target, thisArgument, argumentsList) ist semantisch äquivalent zu:
Math.floor.apply(null, [1.75]);
Reflect.apply(Math.floor, null, [1.75]);
Die einzigen Unterschiede sind:
Reflect.apply()nimmt die aufzurufende Funktion alstarget-Parameter anstelle desthis-Kontexts.Reflect.apply()wirft einen Fehler, wennargumentsListweggelassen wird, anstatt standardmäßig ohne Parameter aufzurufen.
Reflect.apply() ruft die [[Call]] interne Methode des Objekts von target auf.
Beispiele
>Verwenden von Reflect.apply()
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® 2026 Language Specification> # sec-reflect.apply> |