The Reflect.apply() static method calls a target function with arguments as specified.
The Reflect.apply() static method calls a target function with arguments as specified.
Reflect.apply(target, thisArgument, argumentsList)
targetThe target function to call.
thisArgumentThe value of this provided for the call to target.
argumentsListAn array-like object specifying the arguments with which target should be called.
The result of calling the given target function with the specified this value and arguments.
TypeErrorThrown if target is not a function or argumentsList is not an object.
Reflect.apply() provides the reflective semantic of a function call. That is, Reflect.apply(target, thisArgument, argumentsList) is semantically equivalent to:
Math.floor.apply(null, [1.75]); Reflect.apply(Math.floor, null, [1.75]);
The only differences are:
Reflect.apply() takes the function to call as the target parameter instead of the this context.Reflect.apply() throws if argumentsList is omitted instead of defaulting to calling with no parameters.Reflect.apply() invokes the [[Call]] object internal method of target.
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"
| Specification |
|---|
| ECMAScript Language Specification # sec-reflect.apply |
| Desktop | Mobile | Server | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | Deno | Node.js | ||
apply |
49 | 12 | 42 | 36 | 10 | 49 | 42 | 36 | 10 | 5.0 | 49 | 1.0 | 6.0.0 | |
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/apply