The Object.defineProperty()
method defines a new property to an object or modifies an existing property of an object.
The defineProperty()
method is declared as follows:
Object.defineProperty( obj, prop, desc)
obj
: The object whose property is defined.prop
: The name or symbol of the property that is set.desc
: The descriptor of the property that is set.We can use the property descriptor to do the following:
Object.defineProperty( obj, prop, {value: "new val"})
Object.defineProperty( obj, prop, {writable: bool})
Object.defineProperty( obj, prop, {enumerable: bool})
Object.defineProperty( obj, prop, {configureable: bool})
Where bool
is either true
or false
.
The defineProperty()
method returns the object obj
with the property prop
set.
The following browsers support the defineProperty()
method:
Consider the code snippet below, which demonstrates the use of the defineProperty()
method where the object’s property is modified.
var Student = { name: 'Ali', rollNo: '123'}console.log(Student)//modifying propertyObject.defineProperty(Student, "rollNo", {value: "234"})console.log(Student)
Consider the code snippet below, which demonstrates the use of the defineProperty()
method where an object’s property is added.
var Student = { name: 'Ali', rollNo: '123'}console.log(Object.getOwnPropertyNames(Student));//return names of object's properties//adding propertyObject.defineProperty(Student, 'batch', {value: "2021", writeable: true})console.log(Object.getOwnPropertyNames(Student));//return names of object's properties
Free Resources