JavaScript Object defineProperty() Method is used to define a new property directly on an object or modify an existing property on an object.
The method takes three parameters: the object to define the property on, the name of the property, and an object that describes the property.
Object.defineProperty(obj, prop, descriptor)This method allows you to define various attributes for a property, such as its value, writable status, and whether it can be deleted or not. By using defineProperty(), you can add custom logic to the getter and setter methods of a property, allowing you to control how it is accessed and updated.
const obj = {};
Object.defineProperty(obj, 'readOnlyProp', {
value: 'This property is read-only',
writable: false
});
console.log(obj.readOnlyProp); // This property is read-only
obj.readOnlyProp = 'Trying to modify read-only prop'; // no error thrown but will not change
console.log(obj.readOnlyProp); // This property is read-only
This method is commonly used for creating read-only properties or for implementing computed properties that are dynamically generated based on other properties.
JavaScript Object defineProperty() example
Simple example code.
<!DOCTYPE html>
<html>
<body>
<script>
// create an object named user
let user = {};
Object.defineProperty(user, "name", {
value: "John",
writable: false
});
// attempt to change the name property
user.name = "NO One";
console.log(user)
</script>
</body>
</html>Output:

First create an empty object named user. Then use Object.defineProperty() to define a new property name on the user object. The value attribute is set to "John", and the writable attribute is set to false. This means that the name property is read-only and cannot be modified once it is set.
Do comment if you have any doubts or suggestions on this Js object methods topic.
Note: The All JS Examples codes are tested on the Firefox browser and the Chrome browser.
OS: Windows 10
Code: HTML 5 Version