Non-Enumerable Read-Only Accessor

    Define a non-enumerable read-only accessor.

    Usage

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

    setNonEnumerableReadOnlyAccessor( obj, prop, getter )

    Defines a non-enumerable read-only accessor.

    function getter() {
        return 'bar';
    }
    
    var obj = {};
    
    setNonEnumerableReadOnlyAccessor( obj, 'foo', getter );
    
    obj.foo = 'boop';
    // throws <Error>
    
    ## Notes
    • Non-enumerable read-only accessors are non-configurable.

    Examples

    var setNonEnumerableReadOnlyAccessor = require( '@stdlib/utils/define-nonenumerable-read-only-accessor' );
    
    function Foo( name ) {
        if ( !(this instanceof Foo) ) {
            return new Foo( name );
        }
        setNonEnumerableReadOnlyAccessor( this, 'name', getName );
        return this;
    
        function getName() {
            return name;
        }
    }
    
    var foo = new Foo( 'beep' );
    
    try {
        foo.name = 'boop';
    } catch ( err ) {
        console.error( err.message );
    }