2011-04-11 9 views
6

Object.defineProperty es muy divertido y un gran reemplazo para __defineGetter__ y __defineSetter__ API no estándar, pero ¿hay una contraparte similar para __lookupGetter__? O alguna forma de lograr algo similar?¿ES5 tiene una contraparte para __lookupGetter__?

+0

¿Por qué necesita para buscar una función getter? – Raynos

Respuesta

8

no estoy seguro de los __lookupGetter__ semántica pero ES5 proporciona una nueva API Object.getOwnPropertyDescriptor que le da un objeto descriptor que contiene los atributos de una propiedad y cualquiera de sus value o sus get y/o set funciones.

por ejemplo.

Object.getOwnPropertyDescriptor("foo", {get foo() { return 5} }).get 

le dará la función getter

+0

Vale la pena señalar que no hay 'Object.getPropertyDescriptor', por lo que si necesita algo de la cadena de prototipos, tiene que escalar recursivamente usted mismo. – Domenic

+0

@Domenic tampoco vale nada 'Object.getPropertyDescriptor' se está agregando en ES6 – Raynos

+0

[es6-shim] (https://github.com/paulmillr/es6-shim) proporciona' Object.getPropertyDescriptor'. – webwurst

Cuestiones relacionadas