obal_Objects/Object/__lookupSetter__) Deprecated 
    5. [ ` Object.assign() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
    6. [ ` Object.create() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create)
    7. [ ` Object.defineProperties() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties)
    8. _[ ` Object.defineProperty() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty) _
    9. [ ` Object.entries() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries)
    10. [ ` Object.freeze() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze)
    11. [ ` Object.fromEntries() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries)
    12. [ ` Object.getOwnPropertyDescriptor() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor)
    13. [ ` Object.getOwnPropertyDescriptors() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors)
    14. [ ` Object.getOwnPropertyNames() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames)
    15. [ ` Object.getOwnPropertySymbols() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols)
    16. [ ` Object.getPrototypeOf() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf)
    17. [ ` Object.groupBy() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/groupBy)
    18. [ ` Object.hasOwn() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwn)
    19. [ ` Object.prototype.hasOwnProperty() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty)
    20. [ ` Object.is() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is)
    21. [ ` Object.isExtensible() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible)
    22. [ ` Object.isFrozen() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen)
    23. [ ` Object.prototype.isPrototypeOf() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf)
    24. [ ` Object.isSealed() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed)
    25. [ ` Object.keys() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys)
    26. [ ` Object.preventExtensions() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/preventExtensions)
    27. [ ` Object.prototype.propertyIsEnumerable() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable)
    28. [ ` Object.seal() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/seal)
    29. [ ` Object.setPrototypeOf() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf)
    30. [ ` Object.prototype.toLocaleString() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toLocaleString)
    31. [ ` Object.prototype.toString() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString)
    32. [ ` Object.prototype.valueOf() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)
    33. [ ` Object.values() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values)

##  In this article

  * Try it 
  * Syntax 
  * Description 
  * Examples 
  * Specifications 
  * Browser compatibility 
  * See also 

#  Object.defineProperty()

The **` Object.defineProperty() ` ** static method defines a new property
directly on an object, or modifies an existing property on an object, and
returns the object.

##  Try it

##  Syntax

js

    
    
    Object.defineProperty(obj, prop, descriptor)
    

###  Parameters

` obj `

    

The object on which to define the property.

` prop `

    

A string or [ ` Symbol ` ](/en-
US/docs/Web/JavaScript/Reference/Global_Objects/Symbol) specifying the key of
the property to be defined or modified.

` descriptor `

    

The desc