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