2011-04-11 46 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