JavaScript | handler.construct() Method

The handler.construct() method in JavaScript is a trap for the new operation and this method returns an object.

Syntax:

const p = new Proxy(target, {
  construct: function(target, argumentsList, newTarget) {
  }
});  

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

  • Target: This parameter holds the target object.
  • argumentsList: This parameter holds the list of the constructor.
  • newTarget: This parameter holds the constructor that was originally called, p above.

Return value: This method returns an object.

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



Example 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

<script>
function monster1(disposition) {
  this.disposition = disposition;
}
  
const handler1 = {
  construct(target, args) {
    console.log('Users at Geeksforgeeks are called');
  
    return new target(...args);
  }
};
  
const proxy1 = new Proxy(monster1, handler1);
console.log(new proxy1('Geeks').disposition);
  
var pro = new Proxy(function()  
                    {}, {  
  construct: function(objTarget, args, oldConstructor) {  
     return { Value : args[0] + " to anybody" }   
  }  
})  
    
console.log(JSON.stringify(new pro("Hello "), null, ' '))  
</script>

chevron_right


Output:

"Users at Geeksforgeeks are called"
"Geeks"
"{
 "Value": "Hello  to anybody"
}"

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

<script>
const p = new Proxy(function() {}, {
  construct: function(target, argumentsList, newTarget) {
    console.log('Value: ' + argumentsList.join(', '));
    return { value: argumentsList[0] * 10 /3};
  }
});
  
console.log('New Value: ' +new p(4).value);
</script>

chevron_right


Output:

"Value: 4"
"New Value: 13.333333333333334"

Supported Browsers: The browsers supported by handler.construct() method are listed below:

  • Google Chrome
  • Firefox
  • Opera
  • Safari
  • Edge

full-stack-img




My Personal Notes arrow_drop_up

Small things always make you to think big

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.