Name

Object.defineProperty() — create or configure an object property

Availability

ECMAScript 5

Synopsis

Object.defineProperty(o, name, desc)

Arguments

o

The object on which a property is to be created or configured.

name

The name of the property to be created or configured.

desc

A property descriptor object that describes the new property or describes the changes to be made to an existing property.

Returns

The object o.

Throws

TypeError

If o is not an object, or if the property cannot be created (because o is not extensible) or configured (because it already exists and is non-configurable, for example). See Property Attributes for a list of property configuration errors that can cause this function to throw a TypeError.

Description

Object.defineProperty() creates or configures the property named name of the object o, using the property descriptor desc. See Object.getOwnPropertyDescriptor() for an explanation of property descriptor objects.

If o does not already have a property named name, then this function simply creates a new property with the attributes and value specified in desc. If any properties are missing from desc, then the corresponding attributes are set to false or undefined.

If name is the name of an existing property of o, then Object.defineProperty() configures that property by altering its value or attributes. In this case, desc only needs to contain the attributes to be changed: attributes not mentioned in desc will not be altered.

Note that this is not a method to be invoked on an ...

Get JavaScript: The Definitive Guide, 6th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.