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
Reflect.apply(target, thisArgument, argumentsList)
Parameter
target
-
Die Ziel-Funktion, die aufgerufen werden soll.
thisArgument
-
Der Wert von
this
, der für den Aufruf vontarget
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 angegebenen this
-Wert und den Argumenten.
Ausnahmen
TypeError
-
Wird ausgelöst, wenn
target
keine Funktion ist oderargumentsList
kein Objekt ist.
Beschreibung
Reflect.apply()
bietet die reflektive Semantik eines Funktionsaufrufs. 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()
nimmt die aufzurufende Funktion alstarget
-Parameter anstelle desthis
-Kontexts.Reflect.apply()
löst einen Fehler aus, wennargumentsList
weggelassen wird, anstatt standardmäßig ohne Parameter aufzurufen.
Reflect.apply()
ruft die [[Call]]
interne Objekt-Methode von target
auf.
Beispiele
Verwendung 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
Specification |
---|
ECMAScript® 2025 Language Specification # sec-reflect.apply |