JavaScript Reflect.getOwnPropertyDescriptor() method in Javascript is used to get the descriptor of an object if it exists in the object. It is the same as the Object.getOwnPropertyDescriptor method, but non-object targets are handled differently.
Syntax:
Reflect.getOwnPropertyDescriptor(obj, Key)
Parameters: This method accepts two parameters as mentioned above and described below:
- Obj: This parameter holds the target object and it looks for the property.
- Key: This parameter is used to get its own property descriptor for the name of the property.
Return value: This method returns the property descriptor object and returns undefined if the target object does not exist.
Exceptions: A TypeError is an exception given as the result when the target is not an Object.
Below examples illustrate the Reflect.getOwnPropertyDescriptor() method in JavaScript:
Example 1: In this example, we will get the descriptor of an object using Reflect.getOwnPropertyDescriptor() method in JavaScript.
javascript
let object = {Â Â Â Â property1: "neveropen"};Â
console.log(Reflect.getOwnPropertyDescriptor(Â Â Â Â object, 'property1').value);Â
console.log(Reflect.getOwnPropertyDescriptor(Â Â Â Â object, 'property2'));Â
console.log(Reflect.getOwnPropertyDescriptor(Â Â Â Â object, 'property1').writable);Â
let object1 = {Â Â Â Â property2: "Javascript"};Â
const object3 = {Â Â Â Â property3: 232};Â
console.log(Reflect.getOwnPropertyDescriptor(Â Â Â Â object1, 'property2').value);Â
console.log(Reflect.getOwnPropertyDescriptor(Â Â Â Â object1, 'property3'));Â
console.log(Reflect.getOwnPropertyDescriptor(Â Â Â Â object1, 'property2').writable);Â
console.log(Reflect.getOwnPropertyDescriptor    (object3, "null") === undefined); |
neveropen undefined true Javascript undefined true true
Example 2: In this example, we will get the descriptor of an object using the Reflect.getOwnPropertyDescriptor() method in JavaScript.
javascript
const object1 = {Â Â Â Â property1: "NULL"};Â
console.log(Reflect.getOwnPropertyDescriptor(Â Â Â Â object1, 'property2'));console.log(Reflect.getOwnPropertyDescriptor(Â Â Â Â object1, 'property1').writable);console.log(Reflect.getOwnPropertyDescriptor(Â Â Â Â object1, 'property1'));Â
console.log(Reflect.getOwnPropertyDescriptor(Â Â Â Â { val: 'hello' }, 'val'));console.log(Reflect.getOwnPropertyDescriptor(Â Â Â Â { val1: 'hello' }, 'y'));console.log(Reflect.getOwnPropertyDescriptor(Â Â Â Â [], 'length')); |
undefined
true
{ value: 'NULL', writable: true, enumerable: true, configurable: true }
{
value: 'hello',
writable: true,
enumerable: true,
configurable: true
}
undefined
{ value: 0, writable: ...
Example 3: Calling the non-object and an error occurs.
javascript
console.log(Reflect.getOwnPropertyDescriptor('foo', 0)); |
Output:
Error: Reflect.getOwnPropertyDescriptor called on non-object
Supported Browsers:
The browsers are supported by JavaScript Reflect.getOwnPropertyDescriptor() Method are listed below:
- Google Chrome 49 and above
- Edge 12 and above
- Firefox 42 and above
- Opera 36 and above
- Safari 10 and above
We have a complete list of Javascript Reflects methods, to check those go through the JavaScript Reflect Reference article.
