Spec-Zone.ru › JavaScript

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.

The Reflect.apply() static method calls a target function with arguments as specified.

Try it

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)

Parameters

target
The target function to call.
thisArgument
The value of this provided for the call to target.
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 or argumentsList 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 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.

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® 2027 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 WebView on iOS Bun Deno Node.js
apply
49
12
42
36
10
49
42
36
10
5.0
49
10
1.0.0
1.0
6.0.0

See also

  • Polyfill of Reflect.apply in core-js
  • es-shims polyfill of Reflect.apply
  • Reflect
  • Function.prototype.apply()
  • handler.apply()

© 2005–2025 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API