Read-Only Accessor

Define a read-only accessor.

Usage

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

setReadOnlyAccessor( obj, prop, getter )

Defines a read-only accessor.

function getter() {
    return 'bar';
}

var obj = {};

setReadOnlyAccessor( obj, 'foo', getter );

obj.foo = 'boop';
// throws <Error>
## Notes
  • Read-only accessors are enumerable and non-configurable.

Examples

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

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

    function getName() {
        return name;
    }
}

var foo = new Foo( 'beep' );

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