2011-04-11 39 views
6

我知道Object.defineProperty是非常有趣和很好的替代__defineGetter____defineSetter__非标准API,但是有没有类似的对应__lookupGetter__?或者某种方式实现类似的事情?ES5是否与__lookupGetter__对应?

+0

为什么你需要查找一个getter函数? – Raynos 2011-04-11 16:05:37

回答

8

我不知道该__lookupGetter__语义,但ES5提供了一个新的API Object.getOwnPropertyDescriptor,让你包含一个属性,无论是它的value或其get和/或set功能属性的描述对象。

例如。

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

会给你getter函数

+0

值得注意的是没有'Object.getPropertyDescriptor',所以如果你需要原型链中的某些东西,你必须自己递归爬上它。 – Domenic 2011-06-12 22:07:32

+0

@Domenic它也没有价值Object.getPropertyDescriptor被添加到ES6 – Raynos 2012-01-18 21:54:01

+0

[es6-shim](https://github.com/paulmillr/es6-shim)提供了'Object.getPropertyDescriptor'。 – webwurst 2012-01-27 10:16:03