# writablePropertiesIn > Return an array of an object's own and inherited writable property names and [symbols][@stdlib/symbol/ctor].
## Usage ```javascript var writablePropertiesIn = require( '@stdlib/utils/writable-properties-in' ); ``` #### writablePropertiesIn( obj ) Returns an `array` of an object's own and inherited writable property names and [symbols][@stdlib/symbol/ctor]. ```javascript var defineProperty = require( '@stdlib/utils/define-property' ); var obj = {}; defineProperty( obj, 'a', { 'configurable': false, 'enumerable': false, 'writable': true, 'value': 'a' }); var props = writablePropertiesIn( obj ); // returns [ 'a', ... ] ```
## Examples ```javascript var defineProperty = require( '@stdlib/utils/define-property' ); var hasSymbolSupport = require( '@stdlib/assert/has-symbol-support' ); var Symbol = require( '@stdlib/symbol/ctor' ); var writablePropertiesIn = require( '@stdlib/utils/writable-properties-in' ); var hasSymbols; var props; var obj; hasSymbols = hasSymbolSupport(); function Foo() { this.a = 'a'; defineProperty( this, 'b', { 'configurable': true, 'enumerable': true, 'writable': false, 'value': 'b' }); if ( hasSymbols ) { this[ Symbol( 'a' ) ] = 'a'; defineProperty( this, Symbol( 'b' ), { 'configurable': true, 'enumerable': true, 'writable': false, 'value': 'b' }); } return this; } Foo.prototype.foo = 'bar'; defineProperty( Foo.prototype, 'beep', { 'configurable': false, 'enumerable': false, 'writable': false, 'value': 'boop' }); if ( hasSymbols ) { Foo.prototype[ Symbol( 'foo' ) ] = 'bar'; defineProperty( Foo.prototype, Symbol( 'beep' ), { 'configurable': false, 'enumerable': false, 'writable': false, 'value': 'boop' }); } obj = new Foo(); props = writablePropertiesIn( obj ); console.log( props ); // e.g., => [ 'a', 'foo', ... ] ```