The Reflect.apply()
static method calls a target function with arguments as specified.
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.
Try it
Syntax
Reflect.apply(target, thisArgument, argumentsList)
Parameters
target
-
The target function to call.
thisArgument
-
The value of
this
provided for the call totarget
. argumentsList
-
An array-like object specifying the arguments with which
target
should be called.
Return value
The result of calling the given target
function with the specified this
value and arguments.
Exceptions
TypeError
-
Thrown if
target
is not a function orargumentsList
is not an object.
Description
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 thetarget
parameter instead of thethis
context. -
Reflect.apply()
throws ifargumentsList
is omitted instead of defaulting to calling with no parameters.
Reflect.apply()
invokes the [[Call]]
object internal method of target
.
Examples
Using 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"
Specifications
Specification |
---|
ECMAScript Language Specification # sec-reflect.apply |
Browser compatibility
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 |
See also
© 2005–2024 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