Este articulo necesita una revisión editorial. Cómo puedes ayudar.
Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.
El método Object.getOwnPropertyDescriptor()
regresa como descripción de propiedad para una propiedad propia (eso es, una presente directamente en el objeto, no presente por la fuerza a través de la cadena de prototipo del objeto) de un objeto dado.
Síntaxis
Object.getOwnPropertyDescriptor(obj, prop)
Parametros
obj
- El objeto en el que se busca la propiedad.
prop
- El nombre de la propiedad del cuál se obtendrá la descripción.
Valor de retorno
Un descriptor de propiedad de una propiedad dada si existe en el objeto, undefined
en cualquier otro caso.
Descripción
Éste método permite la examinación precisa de la descripción de una propiedad. Una propiedad en JavaScript consiste de el nombre de una cadena de valor y un descriptor de propiedad. Información más detallada acerca de los tipos de descripciones y sus atributos puede ser encontrada en Object.defineProperty()
.
Una descripción de propiedad es un registro con alguno de los siguientes atributos:
value
- El valor asociado con la propiedad (descriptores de datos unicamente).
writable
true
si y solo si el valor asociado con la propiedad puede ser cambiada (descriptores de datos unicamente).get
- Una función que sirve como método de acceso para la propiedad, o
undefined
si no hay método de acceso (métodos de acceso de descripciones unicamente). set
- Una función que sirve como método de establecimiento para la propieda, o
undefined
si no hay método de establecimiento (métodos de establecimiento de descripciones unicamente). configurable
true
si y solo si el tipo de ésta descripción de propiedad puede ser cambiada y si la propiedad puede ser eliminada del objeto correspondiente.enumerable
true
si y solo si ésta propiedad aparece durante la enumeración de las propiedades del objeto correspondiente.
Ejemplos
var o, d; o = { get foo() { return 17; } }; d = Object.getOwnPropertyDescriptor(o, 'foo'); // d is { configurable: true, enumerable: true, get: /* la función de acceso */, 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 es { value: 8675309, writable: false, enumerable: false, configurable: false }
Nates
En ES5, si el primer argumento que se le pasa a éste método no es un objeto (primitivo), entonces causará un TypeError
. EIn ES6, un no-objeto pasado como primer argumento será convertido (coerción) a un objeto en primera instancia.
Object.getOwnPropertyDescriptor("foo", 0); // TypeError: "foo" is not an object // Código ES5 Object.getOwnPropertyDescriptor("foo", 0); // {configurable:false, enumerable:true, value:"f", writable:false} // Código ES6
Especificaciones
Especificación | Estado | Comentario |
---|---|---|
ECMAScript 5.1 (ECMA-262) The definition of 'Object.getOwnPropertyDescriptor' in that specification. |
Standard | Definición inicial. Implementado en JavaScript 1.8.5. |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Object.getOwnPropertyDescriptor' in that specification. |
Standard |
Compatibilidad con navegadores
Caracteristica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Soporte básico | 5 | 4.0 (2) | 8 | 12 | 5 |
Caracteristica | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Soporte básico | ? | ? | ? | ? | ? | ? |