JavaScript (ES2026) reference · Object Methods
JavaScript Object.defineProperty() Method
Add or change one property with full control over whether it is writable, enumerable and configurable, or define a getter.
JavaScript (ES2026) Since ES5
Syntax
Object.defineProperty(obj, prop, descriptor)
Parameters
| Parameter | Description |
|---|---|
obj |
The object to inspect or change. |
prop |
The property name. |
descriptor |
{ value, writable, enumerable, configurable } or { get, set }. |
Return value
The object.
Examples
"use strict";
const config = {};
Object.defineProperty(config, "version", { value: "1.0", writable: false, enumerable: true });
try { config.version = "2.0"; } catch (e) { console.log(e.constructor.name); }
console.log(config.version);
Output
TypeError 1.0
const temp = { celsius: 20 };
Object.defineProperty(temp, "fahrenheit", { get() { return this.celsius * 9 / 5 + 32; } });
console.log(temp.fahrenheit, Object.keys(temp));
Output
68 [ 'celsius' ]
Version history
| Version | Change |
|---|---|
| JavaScript ES5 | Added |
Related
Object.defineProperties()· Add or change several properties at once using property descriptors, each with its own writable and enumerable flags.Object.getOwnPropertyDescriptor()· Return the descriptor (value, writable, enumerable, configurable or get/set) of one own property.Object.freeze()· Make an object immutable: no properties can be added, removed or changed. The freeze is shallow.- JavaScript Objects · tutorial