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 thisprovided for the call totarget.
- argumentsList
- 
An array-like object specifying the arguments with which targetshould be called.
Return value
The result of calling the given target function with the specified this value and arguments.
Exceptions
- TypeError
- 
Thrown if targetis not a function orargumentsListis 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- targetparameter instead of the- thiscontext.
- Reflect.apply()throws if- argumentsListis 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® 2026 Language Specification> # sec-reflect.apply> | 
Browser compatibility
Loading…