The Object.getOwnPropertyDescriptor() method returns a property descriptor for a specific property of an object.
Example
let obj = {num: 10}
// get the property description
// of the num property of obj
let numValue = Object.getOwnPropertyDescriptor(obj, "num");
console.log(numValue);
// Output: { value: 10, writable: true, enumerable: true, configurable: true }
getOwnPropertyDescriptor() Syntax
The syntax of the getOwnPropertyDescriptor() method is:
Object.getOwnPropertyDescriptor(obj, prop)
Here, getOwnPropertyDescriptor() is a static method. Hence, we need to access the method using the class name, Object.
getOwnPropertyDescriptor() Parameters
The getOwnPropertyDescriptor() method takes in:
- obj - the object in which to look for the property.
- prop - the name or Symbol of the property whose description is to be retrieved.
getOwnPropertyDescriptor() Return Value
The getOwnPropertyDescriptor() method returns:
- a property descriptor of the specified property of the object.
undefinedif the property does not exist in the object.
Example 1: JavaScript Object.getOwnPropertyDescriptor()
let obj = {
x: 711,
get number() {
return this.x;
},
};
// get property description of x in obj
let xDescriptors = Object.getOwnPropertyDescriptor(obj, "x");
console.log(xDescriptors);
// get property description of number() method
let value = Object.getOwnPropertyDescriptor(obj, "number");
console.log(value);
Output
{ value: 711, writable: true, enumerable: true, configurable: true }
{
get: [Function: get number],
set: undefined,
enumerable: true,
configurable: true
}
In this program, we have created an object obj with the following properties:
- x - a property with the value 711
number()- agetmethod that returns the value of x
Then, we used the getOwnPropertyDescriptor() method to find the property descriptors of x and number():
// find property description of x
let xDescriptors = Object.getOwnPropertyDescriptor(obj, "x");
// find property description of number() method
let value = Object.getOwnPropertyDescriptor(obj, "number");
Notice the arguments given to the getOwnPropertyDescriptor() method. The object name obj is written without quotation marks.
However, the property names x and number are written inside double quotes i.e. "x" and "number".
Example 2: getOwnPropertyDescriptor() With defineProperty()
let obj={}
// define a property of obj using
// the defineProperty() method
Object.defineProperty(obj, "id", {
value: 123,
writable: false,
enumerable: false,
});
// find property description of created property 'id'
console.log(Object.getOwnPropertyDescriptor(obj, "id"));
Output
{ value: 123, writable: false, enumerable: false, configurable: false }
In the above example, we have initialized an empty object obj. Then, we defined a single property id on it using the defineProperty() method.
Finally, we printed all the property descriptions of the id property with the help of getOwnPropertyDescriptor().
The resulting output shows that getOwnPropertyDescriptor() returns the same property descriptors that we had defined using defineProperty().
Also Read: