Open In App

JavaScript Handler getOwnPropertyDescriptor() Method

Last Updated : 08 Aug, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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
Previous
Next
Share your thoughts in the comments

Similar Reads