JavaScript Handler getOwnPropertyDescriptor() Method
Last Updated :
08 Aug, 2023
JavaScript handler.getOwnPropertyDescriptor() method in Javascript is a trap for the Object.getOwnPropertyDescriptor() method. A property cannot be reported as non-existent if it exists as a non-configurable own property of the target object.
Syntax:
const p = new Proxy(target, {
getOwnPropertyDescriptor: function(target, prop) {
}
});
Parameters: This method accepts two parameters as mentioned above and described below:
- Target: This parameter is the target object.
- Prop: This parameter is the name of the property whose description should be retrieved.
Return value: This method returns an object or undefined.
Below examples illustrate the handler.getOwnPropertyDescriptor() method in JavaScript:
Example 1: In this example, we will see the use of handler.getOwnPropertyDescriptor() method in JavaScript.
javascript
const monster1 = {
num: 4
};
const handler1 = {
getOwnPropertyDescriptor(target, prop) {
console.log(`Type : ${prop}`);
return { configurable: true ,
enumerable: true ,
value: 5 };
}
};
const proxy1 = new Proxy(monster1, handler1);
console.log(Object.getOwnPropertyDescriptor(proxy1, 'num' ).value);
console.log(Object.getOwnPropertyDescriptor(proxy1, 'bool' ).enumerable);
|
Output
Type : num
5
Type : bool
true
Example 2: In this example, we will see the use of handler.getOwnPropertyDescriptor() method in JavaScript.
javascript
const p = new Proxy({ VAL: 20 }, {
getOwnPropertyDescriptor: function (target, prop) {
console.log( 'Property : ' + prop);
return { configurable: true , enumerable: true , value: 10 };
}
});
console.log(Object.getOwnPropertyDescriptor(p, 'VAL' ).value);
const obj = { a: 10 };
Object.preventExtensions(obj);
const pval = new Proxy(obj, {
getOwnPropertyDescriptor: function (target, prop) {
return undefined;
}
});
console.log(Object.getOwnPropertyDescriptor(pval));
|
Output
Property : VAL
10
undefined
Supported Browsers:
The browsers are supported by handler.getOwnPropertyDescriptor() method is listed below:
- Google Chrome 49 and above
- Edge 12 and above
- Firefox 18 and above
- Opera 36 and above
- Safari 10 and above
We have a complete list of Javascript Proxy/handler methods, to check those go through the Javascript Proxy/handler Reference article.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...