Configurable Read-Write Accessor

Define a configurable read-write accessor.

Usage

var setConfigurableReadWriteAccessor = require( '@stdlib/utils/define-configurable-read-write-accessor' );

setConfigurableReadWriteAccessor( obj, prop, getter, setter )

Defines a configurable read-write accessor.

var word = 'bar';
var obj = {};

function getter() {
    return word + ' foo';
}

function setter( v ) {
    word = v;
}

setConfigurableReadWriteAccessor( obj, 'foo', getter, setter );

var v = obj.foo;
// returns 'bar foo'

obj.foo = 'beep';

v = obj.foo;
// returns 'beep foo'
## Notes
  • Configurable read-write accessors are enumerable.

Examples

var setConfigurableReadWriteAccessor = require( '@stdlib/utils/define-configurable-read-write-accessor' );

function Foo( name ) {
    if ( !(this instanceof Foo) ) {
        return new Foo( name );
    }
    setConfigurableReadWriteAccessor( this, 'name', getName, setName );
    return this;

    function getName() {
        return 'Hello, ' + name;
    }

    function setName( v ) {
        name = v;
    }
}

var foo = new Foo( 'Grace' );
console.log( foo.name );

foo.name = 'Ada';
console.log( foo.name );