Skip to content
Related Articles
Open in App
Not now

Related Articles

JavaScript handler.setPrototypeOf() Method

Improve Article
Save Article
  • Last Updated : 27 Dec, 2022
Improve Article
Save Article

The handler.setPrototypeOf() method in JavaScript is a trap for Object.setPrototypeOf() method and it returns a Boolean value.

Syntax: 

const p = new Proxy(target, {
  setPrototypeOf: function(target, prototype) {
  }
});

Parameters: This method accepts two parameters as mentioned above and described below: 

  • target: This parameter is the target object.
  • prototype: This parameter is the object’s new prototype or null.

Return value: This method returns a boolean value. It returns true if the [[Prototype]] was successfully changed.

The below examples illustrate the handler.setPrototypeOf() method in JavaScript:

Example 1: In this example, we will see the use of the handler.setPrototypeOf() method in JavaScript.

javascript




<script>
    const handler1 = {
      setPrototypeOf(gfg, gfgProto) {
        gfg.geneticallyModified = true;
        return false;
      }
    };
      
    const gfgProto = {};
    const gfg = {
      geneticallyModified : false
    };
      
    const proxy1 = new Proxy(gfg, handler1);
    console.log(Reflect.setPrototypeOf(proxy1, gfgProto));
    console.log(gfg.geneticallyModified);
      
    var soo={  
      foo:1  
    }  
    var proxy = new Proxy(soo, {  
      setPrototypeOf(target, newProto) {  
      }  
    });  
    console.log('a' in proxy); 
</script>


Output: 

false
true
false

Example 2: In this example, we will see the use of the handler.setPrototypeOf() method in JavaScript. It throws a custom error.

javascript




<script>
    const handlerThrows = {
        setPrototypeOf(target, newProto) {
            throw new Error('custom error');
        }
    }; 
      
    const newProto = {}, target = {};
      
    const p2 = new Proxy(target, handlerThrows);
    console.log(Object.setPrototypeOf(p2, newProto));  
    console.log(Reflect.setPrototypeOf(p2, newProto));
</script>


Output: 

Error: custom error

We have a complete list of Javascript Functions, to check those go through the Javascript Functions Complete Reference article.

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

  • Google Chrome 49 and above
  • Edge 12 and above
  • Firefox 49 and above
  • Opera 36 and above
  • Safari 10 and above

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!