Non-Enumerable Read-Only

    Define a non-enumerable read-only property.

    Usage

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

    setNonEnumerableReadOnly( obj, prop, value )

    Defines a non-enumerable read-only property.

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

    Examples

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