Last Updated : 12 Jul, 2025
JavaScript handler.getPrototypeOf() method in JavaScript is a trap for the internal method. This method returns the same value as Object.getPrototypeOf(target) if the target object is not extensible.
Syntax:
const p = new Proxy(obj, { getPrototypeOf(target) { ... } });
Parameters:
Return value: This method always returns an object if no object is returned it returns a null.
Below examples illustrate the handler.getPrototypeOf() method in JavaScript:
Example 1: In this example, we will see the use of handler.getPrototypeOf() method in JavaScript.
javascript
const monster1 = {
porp: 46
};
const monsterPrototype = {
porp: 52
};
const handler = {
getPrototypeOf(target) {
return monsterPrototype;
}
};
const proxy1 = new Proxy(monster1, handler);
console.log(Object.getPrototypeOf(proxy1) === monsterPrototype);
console.log(Object.getPrototypeOf(proxy1).porp);
let obj = {};
let p = new Proxy(obj, {
getPrototypeOf(target) {
return Array.prototype;
}
});
console.log(
p instanceof Array
);
Output:
true 52 true
Example 2: Five ways to trigger this method of trap
javascript
const obj = {};
const p = new Proxy(obj, {
getPrototypeOf(target) {
return Array.prototype;
}
});
console.log(Object.getPrototypeOf(p) === Array.prototype);
console.log(Reflect.getPrototypeOf(p) === Array.prototype);
console.log(p.__proto__ === Array.prototype);
console.log(Array.prototype.isPrototypeOf(p));
console.log(p instanceof Array);
Output:
true true true true true
Type of exceptions: There are two types of exceptions in handler.getPrototypeOf() method.
TypeError: "target" is not an object or null
Example: In this example, it throws a type error in the console.
javascript
const obj = {};
const p = new Proxy(obj, {
getPrototypeOf(target) {
return 'Geeksforgeeks';
}
});
console.log(Object.getPrototypeOf(p));
Output:
Error: 'getPrototypeOf' on proxy: trap returned neither object nor null
TypeError: expected same prototype value
Example: TypeError: expected same prototype value
javascript
const obj = Object.preventExtensions({});
const p = new Proxy(obj, {
getPrototypeOf(target) {
return {};
}
});
console.log(Object.getPrototypeOf(p));
Output:
Error: 'getPrototypeOf' on proxy: proxy target is non-extensible but the trap did not return its actual prototype
Supported Browsers: The browsers supported by handler.getPrototypeOf() 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