JavaScript Reflect construct() Method
JavaScript 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(para1, para2, para3)
Parameters: This method accepts three parameters as mentioned above and described below:
- para1: This parameter is the target function that is going to be called.
- para2: This parameter is an array-like object specifying the argument with which the target should be called.
- para3: 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 an exception given as the result when the target is not a constructor.
The below examples illustrate the Reflect.construct() method in JavaScript:
Example 1: This example shows the basic use of the Reflect.construct() method in JavaScript.
function addNumbers(x, y, z) {
this.sum = x + y + z;
}
const values1 = [1, 2, 3];
const obj1 = new addNumbers(...values1);
const obj2 = Reflect.construct(addNumbers, values1);
console.log(obj2.sum);
console.log(obj1.sum);
function calculateSum(p, q, r) {
this.sum = p + q + r;
}
const values2 = [1, 4, 3];
const values3 = [1, 2, 3];
const obj3 = new addNumbers(...values3);
const obj4 = Reflect.construct(calculateSum, values2);
console.log(obj4.sum);
console.log(obj3.sum);
Output
6 6 8 6
Example 2: This example shows the basic use of the Reflect.construct() method in JavaScript.
class FirstClass {
constructor(name) {
this.name = name;
}
}
class SecondClass {
constructor(name) {
this.name = name;
}
}
const values = ['one'];
let objA = new FirstClass(...values);
let objB = new SecondClass(...values);
console.log(objA.name);
console.log(objB.name);
console.log(objA instanceof FirstClass);
console.log(objB instanceof FirstClass);
console.log(objA instanceof SecondClass);
console.log(objB instanceof SecondClass);
Output
one one true false false true
Supported Browsers:
The browsers are supported by JavaScript Reflect.apply() Methods are listed below:
- Google Chrome 49 and above
- Edge 12 and above
- Firefox 42 and above
- Opera 36 and above
- Safari 10 and above
We have a complete list of Javascript Reflects methods, to check those go through the JavaScript Reflect Reference article.