Last Updated : 12 Jul, 2025
JavaScript 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:
Return value: This method returns a boolean value. It returns true if the [[Prototype]] was successfully changed.
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
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);
let soo = {
foo: 1
}
let proxy = new Proxy(soo, {
setPrototypeOf(target, newProto) {
}
});
console.log('a' in proxy);
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
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));
Output:
Error: custom error
Supported Browsers: The browsers supported by handler.setPrototypeOf() method are listed below:
We have a complete list of Javascript Proxy/handler methods, to check those go through the Javascript Proxy/handler Reference article.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4