JavaScript | Reflect.construct() Method

The Reflect.construct() method in JavaScript is used to call a new target. It gives also the added option to specify a different prototype.

Syntax:

Reflect.construct(target, argumentsList, newTarget)

Parameters: This method accept three parameters as mentioned above and described below:

  • target: This parameter is the target function which is going to be called.
  • ArgumentsList: This parameter is an array-like object specifying the argument with which target should be called.
  • newTarget: It is an optional parameter. The constructor whose prototype should be used.

Return Value: This method returns a new instance of the target.

Exceptions: A TypeError is exception given as the result, when the target is not constructor.



Below examples illustrate the Reflect.construct() method in JavaScript:

Example 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

function func1(a, b, c) {
  this.sum = a + b + c;
}
  
const args = [1, 2, 3];
const object1 = new func1(...args);
const object2 = Reflect.construct(func1, args);
  
console.log(object2.sum);
  
console.log(object1.sum);
  
function func2(a, b, c) {  
  this.sum = a + b + c;  
}  
const args2 = [1, 4, 3];  
const args3 = [1, 2, 3];  
const object3 = new func1(...args);  
const object4 = Reflect.construct(func2, args2);  
console.log(object4.sum);  
console.log(object3.sum);  

chevron_right


Output:

6
6
8
6

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

function OneClass() {
    this.name = 'one'
}
  
function OtherClass() {
    this.name = 'other'
}
const args=[1, 2, 3];
  
let obj1 = Reflect.construct(OneClass, args, OtherClass)
  
let obj2 = Object.create(OtherClass.prototype)
OneClass.apply(obj2, args)
  
console.log(obj1.name) 
console.log(obj2.name)  
  
console.log(obj1 instanceof OneClass)
console.log(obj2 instanceof OneClass) 
  
console.log(obj1 instanceof OtherClass)
console.log(obj2 instanceof OtherClass) 

chevron_right


Output:

"one"
"one"
false
false
true
true

Supported Browsers: The browsers supported by JavaScript Reflect.apply() Method are listed below:

  • Google Chrome
  • Internet Explorer
  • Firefox
  • Opera
  • Safari
  • Edge

full-stack-img




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.