Introduced in JavaScript 1.8.5
Returns a property descriptor for an own property (that is, one directly present on an object, not present by dint of being along an object's prototype chain) of a given object.
Method of Object |
|
---|---|
Implemented in | JavaScript 1.8.5 |
ECMAScript Edition | ECMAScript 5th Edition |
Syntax
Object.getOwnPropertyDescriptor(obj, prop)
Parameters
-
obj
- The object in which to look for the property.
-
prop
- The name of the property whose description is to be retrieved
Description
This method permits examination of the precise description of a property. A property in JavaScript consists of a string-valued name and a property descriptor. Further information about property descriptor types and their attributes can be found in Object.defineProperty
.
A property descriptor is a record with some of the following attributes:
-
value
- The value associated with the property (data descriptors only).
-
writable
-
true
if and only if the value associated with the property may be changed (data descriptors only). -
get
-
A function which serves as a getter for the property, or
undefined
if there is no getter (accessor descriptors only). -
set
-
A function which serves as a setter for the property, or
undefined
if there is no setter (accessor descriptors only). -
configurable
-
true
if and only if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object. -
enumerable
-
true
if and only if this property shows up during enumeration of the properties on the corresponding object.
Examples
var o, d; o = { get foo() { return 17; } }; d = Object.getOwnPropertyDescriptor(o, "foo"); // d is { configurable: true, enumerable: true, get: /*the getter function*/, set: undefined } o = { bar: 42 }; d = Object.getOwnPropertyDescriptor(o, "bar"); // d is { configurable: true, enumerable: true, value: 42, writable: true } o = {}; Object.defineProperty(o, "baz", { value: 8675309, writable: false, enumerable: false }); d = Object.getOwnPropertyDescriptor(o, "baz"); // d is { value: 8675309, writable: false, enumerable: false, configurable: false }
Browser compatibility
Based on Kangax's compat table.
Feature | Firefox (Gecko) | Chrome | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 4 (2.0) | 5 | 8 | 12 alpha | 5 |
Feature | Firefox Mobile (Gecko) | Android | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | ? | ? | ? | ? | ? |