# propertyDescriptorsIn > Return an object's own and inherited [property descriptors][@stdlib/utils/property-descriptors].
## Usage ```javascript var propertyDescriptorsIn = require( '@stdlib/utils/property-descriptors-in' ); ``` #### propertyDescriptorsIn( obj ) Returns an object's own and inherited [property descriptors][@stdlib/utils/property-descriptors]. ```javascript var obj = { 'a': 1, 'b': 2 }; var desc = propertyDescriptorsIn( obj ); // returns { 'a': {...}, 'b': {...}, ... } ```
## Notes - In contrast to the built-in `Object.getOwnPropertyDescriptors()`, 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 propertyDescriptorsIn = require( '@stdlib/utils/property-descriptors-in' ); 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 = propertyDescriptorsIn( obj ); console.log( desc ); // => { 'beep': {...}, 'a': {...}, 'baz': {...}, 'foo': {...}, ... } ```