Read-Write Accessor

    Define a read-write accessor.

    Usage

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

    setReadWriteAccessor( obj, prop, getter, setter )

    Defines a read-write accessor.

    var word = 'bar';
    var obj = {};
    
    function getter() {
        return word + ' foo';
    }
    
    function setter( v ) {
        word = v;
    }
    
    setReadWriteAccessor( obj, 'foo', getter, setter );
    
    var v = obj.foo;
    // returns 'bar foo'
    
    obj.foo = 'beep';
    
    v = obj.foo;
    // returns 'beep foo'
    
    ## Notes
    • Read-write accessors are enumerable and non-configurable.

    Examples

    var setReadWriteAccessor = require( '@stdlib/utils/define-read-write-accessor' );
    
    function Foo( name ) {
        if ( !(this instanceof Foo) ) {
            return new Foo( name );
        }
        setReadWriteAccessor( 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 );