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