# propertyDescriptors > Return an object's own [property descriptors][@stdlib/utils/property-descriptor].
## Usage ```javascript var propertyDescriptors = require( '@stdlib/utils/property-descriptors' ); ``` #### propertyDescriptors( obj ) Returns an object's own [property descriptors][@stdlib/utils/property-descriptor]. ```javascript var obj = { 'a': 1, 'b': 2 }; var desc = propertyDescriptors( obj ); // returns { 'a': {...}, 'b': {...} } ```
## Notes - This function differs from the built-in `Object.getOwnPropertyDescriptors()` as follows: - If provided `null` or `undefined`, the function returns an empty `object`, rather than throwing an error.
## Examples ```javascript var defineProperty = require( '@stdlib/utils/define-property' ); var propertyDescriptors = require( '@stdlib/utils/property-descriptors' ); function Foo() { this.beep = 'boop'; this.a = { 'b': 'c' }; defineProperty( this, 'baz', { 'value': 'qux', 'configurable': true, 'writable': true, 'enumerable': false }); return this; } Foo.prototype.foo = [ 'bar' ]; var obj = new Foo(); var desc = propertyDescriptors( obj ); console.log( desc ); // => { 'beep': {...}, 'a': {...}, 'baz': {...} } ```