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 );