2011-04-11 3 views
6

Object.defineProperty은 비표준 API 인 __defineGetter____defineSetter__을 재미있게 대체 할 수 있지만 많은 도움이되지만 __lookupGetter__과 비슷한 것이 있습니까? 또는 유사한 것을 성취하는 어떤 방법?ES5에는 __lookupGetter__에 해당하는 것이 있습니까?

+0

왜 당신은 getter 함수를 조회 할 필요가 않는 getter 함수를 줄 것인가? – Raynos

답변

8

은 내가 __lookupGetter__ 의미의 모르겠지만 ES5 당신에게 재산과 하나의 value 또는 get 및/또는 set 기능의 속성을 포함하는 기술자 객체를 제공하는 새로운 API Object.getOwnPropertyDescriptor을 제공합니다.

예 :

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

당신에게

+0

주목할만한 점은'Object.getPropertyDescriptor'가 없다는 것입니다. 그래서 프로토 타입 체인에서 무언가가 필요한 경우 재귀 적으로 직접 올라야합니다. – Domenic

+0

@Domicic Object.getPropertyDescriptor가 ES6에 추가 될 필요가 없습니다. – Raynos

+0

[es6-shim] (https://github.com/paulmillr/es6-shim)은'Object.getPropertyDescriptor'를 제공합니다. – webwurst

관련 문제