Reflect.construct() JavaScript

The JavaScript Reflect.construct() method invokes a constructor with a variable number of arguments. It also provides the option to set a different prototype.

Syntax:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Reflect.construct(target, argumentsList[, newTarget])
Reflect.construct(target, argumentsList[, newTarget])
Reflect.construct(target, argumentsList[, newTarget])

Parameters:
target: It represents the object that has to be invoked.
argumentsList: It represents the parameters for the function.
newTarget: It represents the constructor whose prototype should be used. It is an optional parameter.

Return:
It returns a new object of the target (or newTarget, if present), initialized by the target as a constructor with the given argument list.

Note: It will throw a TypeError, if target or newTarget are not constructors.

Example 1:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<!DOCTYPE html>
<html>
<body>
<script>
const n = Reflect.construct ( Array, [55,44,33,22,11] );
document.write(n);
</script>
</body>
</html>
<!DOCTYPE html> <html> <body> <script> const n = Reflect.construct ( Array, [55,44,33,22,11] ); document.write(n); </script> </body> </html>
<!DOCTYPE html>
<html>
<body>
<script>
const n = Reflect.construct ( Array, [55,44,33,22,11] );
document.write(n);
</script>
</body>
</html>

Example 2:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<!DOCTYPE html>
<html>
<body>
<script>
function testFunc(a, b, c) {
this.sum = a + b + c;
}
const args = [10, 12, 30];
const object1 = new testFunc(...args);
const object2 = Reflect.construct(testFunc, args);
document.write(object2.sum);
document.write("</br>");
document.write(object1.sum);
</script>
</body>
</html>
<!DOCTYPE html> <html> <body> <script> function testFunc(a, b, c) { this.sum = a + b + c; } const args = [10, 12, 30]; const object1 = new testFunc(...args); const object2 = Reflect.construct(testFunc, args); document.write(object2.sum); document.write("</br>"); document.write(object1.sum); </script> </body> </html>
<!DOCTYPE html>
<html>
<body>
<script>
function testFunc(a, b, c) {
this.sum = a + b + c;
}
const args = [10, 12, 30];
const object1 = new testFunc(...args);
const object2 = Reflect.construct(testFunc, args);
document.write(object2.sum);
document.write("</br>");
document.write(object1.sum);
</script>
</body>
</html>