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 aufzurufende Zielfunktion.
thisArgument-
Der Wert von
this, der beim Aufruf vontargetverwendet wird. argumentsList-
Ein array-ähnliches Objekt, das die Argumente angibt, mit denen
targetaufgerufen 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
targetkeine Funktion oderargumentsListkein Objekt ist.
Beschreibung
Reflect.apply() stellt die reflektive Semantik eines Funktionsaufrufs bereit. Das heißt, Reflect.apply(target, thisArgument, argumentsList) ist semantisch gleichbedeutend mit:
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 Parametertargetstatt über denthis-Kontext.Reflect.apply()löst eine Ausnahme aus, wennargumentsListweggelassen wird, statt standardmäßig einen Aufruf ohne Argumente auszuführen.
Reflect.apply() ruft die objektinterne Methode [[Call]] von target auf.
Beispiele
>Reflect.apply() verwenden
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> |