# Non-Enumerable Read-Only
[![NPM version][npm-image]][npm-url] [![Build Status][test-image]][test-url] [![Coverage Status][coverage-image]][coverage-url]
> [Define][@stdlib/utils/define-property] a non-enumerable **read-only** property.
## Installation
```bash
npm install @stdlib/utils-define-nonenumerable-read-only-property
```
## Usage
```javascript
var setNonEnumerableReadOnly = require( '@stdlib/utils-define-nonenumerable-read-only-property' );
```
#### setNonEnumerableReadOnly( obj, prop, value )
[Defines][@stdlib/utils/define-property] a non-enumerable **read-only** property.
```javascript
var obj = {};
setNonEnumerableReadOnly( obj, 'foo', 'bar' );
obj.foo = 'boop';
// throws
```
## Notes
- Non-enumerable read-only properties are **non-configurable**.
## Examples
```javascript
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 );
}
```
* * *
## Notice
This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more.
For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib].
#### Community
[![Chat][chat-image]][chat-url]
---
## Copyright
Copyright © 2016-2022. The Stdlib [Authors][stdlib-authors].
[npm-image]: http://img.shields.io/npm/v/@stdlib/utils-define-nonenumerable-read-only-property.svg
[npm-url]: https://npmjs.org/package/@stdlib/utils-define-nonenumerable-read-only-property
[test-image]: https://github.com/stdlib-js/utils-define-nonenumerable-read-only-property/actions/workflows/test.yml/badge.svg
[test-url]: https://github.com/stdlib-js/utils-define-nonenumerable-read-only-property/actions/workflows/test.yml
[coverage-image]: https://img.shields.io/codecov/c/github/stdlib-js/utils-define-nonenumerable-read-only-property/main.svg
[coverage-url]: https://codecov.io/github/stdlib-js/utils-define-nonenumerable-read-only-property?branch=main
[umd]: https://github.com/umdjs/umd
[es-module]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules
[deno-url]: https://github.com/stdlib-js/utils-define-nonenumerable-read-only-property/tree/deno
[umd-url]: https://github.com/stdlib-js/utils-define-nonenumerable-read-only-property/tree/umd
[esm-url]: https://github.com/stdlib-js/utils-define-nonenumerable-read-only-property/tree/esm
[chat-image]: https://img.shields.io/gitter/room/stdlib-js/stdlib.svg
[chat-url]: https://gitter.im/stdlib-js/stdlib/
[stdlib]: https://github.com/stdlib-js/stdlib
[stdlib-authors]: https://github.com/stdlib-js/stdlib/graphs/contributors
[@stdlib/utils/define-property]: https://www.npmjs.com/package/@stdlib/utils-define-property
[@stdlib/utils/define-nonenumerable-property]: https://www.npmjs.com/package/@stdlib/utils-define-nonenumerable-property
[@stdlib/utils/define-nonenumerable-read-only-accessor]: https://www.npmjs.com/package/@stdlib/utils-define-nonenumerable-read-only-accessor
[@stdlib/utils/define-nonenumerable-read-write-accessor]: https://www.npmjs.com/package/@stdlib/utils-define-nonenumerable-read-write-accessor
[@stdlib/utils/define-nonenumerable-write-only-accessor]: https://www.npmjs.com/package/@stdlib/utils-define-nonenumerable-write-only-accessor
[@stdlib/utils/define-read-only-property]: https://www.npmjs.com/package/@stdlib/utils-define-read-only-property