# propertyDescriptorIn > Return a property descriptor for an object's own or inherited property.
## Usage ```javascript var propertyDescriptorIn = require( '@stdlib/utils/property-descriptor-in' ); ``` #### propertyDescriptorIn( obj, property ) Returns a property descriptor for an object's own or inherited property. ```javascript var obj = { 'a': 1, 'b': 2 }; var desc = propertyDescriptorIn( obj, 'a' ); // returns {'configurable':true,'enumerable':true,'writable':true,'value':1} ```
## Notes - This function differs from the built-in `Object.getOwnPropertyDescriptor()` as follows: - If provided `null` or `undefined`, the function returns `null`, rather than throwing an error. - If an object does not have a provided property, the function returns `null`, rather than `undefined`.
## Examples ```javascript var defineProperty = require( '@stdlib/utils/define-property' ); var propertyDescriptorIn = require( '@stdlib/utils/property-descriptor-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 = propertyDescriptorIn( obj, 'foo' ); console.log( desc ); // => {'configurable':true,'enumerable':true,'writable':true,'value':['bar']} ```