Configurable Read-Only Accessor

Define a configurable read-only accessor.

Usage

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

setConfigurableReadOnlyAccessor( obj, prop, getter )

Defines a configurable read-only accessor.

function getter() {
    return 'bar';
}

var obj = {};

setConfigurableReadOnlyAccessor( obj, 'foo', getter );

obj.foo = 'boop';
// throws <Error>
## Notes
  • Configurable read-only accessors are enumerable.

Examples

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

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

    function getName() {
        return name;
    }
}

var foo = new Foo( 'beep' );

try {
    foo.name = 'boop';
} catch ( err ) {
    console.error( err.message );
}