| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/apply | [Back] [Original] |
Get to know MDN better
This feature is well established and works across many devices and browser versions. Its been available across browsers since September 2016.
The Reflect.apply() static method calls a target function with arguments as specified.
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"
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 2027 LanguageSpecification # sec-reflect.apply |
Reflect.apply in core-jsReflect.applyReflectFunction.prototype.apply()handler.apply()This page was last modified on Jul 10, 2025 by MDN contributors.
Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |