2010-12-31 2 views

답변

2

답변 없음? nowjs를 확인하십시오. 그들은 JavaScript에서 __get() 및 __set()을 작동시키는 방법을 찾은 것 같습니다. 나는 그들이 소스 코드에서 어떻게하는지 알 수 없다. :(

편집 : 체크 아웃 Monitor All JavaScript Object Properties (magic getters and setters)

+0

흥미 롭다. 나는 그것을 살펴 봐야 할 것이다. 감사! – Matt

+0

링크를 제공해 주셔서 감사합니다! – Matt

3

나는 운이 좋다고 생각합니다. 적어도 as of March 2010입니다. 최소한 당신은 __defineGetter____defineSetter__을 가지고 있지만, 나는 그것이 똑같지 않다는 것을 알지만. 일반적으로 나는 __noSuchMethod__/__get/method_missing을 사용하는 것이 코드를 읽기 어렵게 만들기 때문에 좋지 않다고 생각합니다. 그것없이 얻고 당신의 코드를 더 명확하게하는지보십시오.

+0

감사 브라이언 난 그냥 그 방법을 시도하고 볼 수 있습니다.! 그들이 작동한다면 나는 코드를 더 어렵게 만들 것이라고 생각한다. 그러나이 방법이 내부적으로 사용된다면 상당한 유스 케이스가 있다고 생각한다. 나는 이런 식으로 체인을 설정할 수있는 가능성을 좋아한다. ('...)). message ('안녕하세요! '). send()'이러한 메소드 중 일부는 정의되지 않았고 그렇지 않은 경우 에이 내부 개체에 붙여 넣기. – Matt

+1

체이닝과 방법 누락 된 물건은 관련이 없습니다. 'Message' 인스턴스가'action','groups','message' 및'send'를 정의하여'this'를 리턴하면, 잘 동작 할 것입니다. 당연히 당신은 역동적 인 방법을 사용할 수는 없지만 그것이 내가 생각하기에 당신이 지불하는 가격입니다. 왜 읽는 것이 어려울 지 생각하는 이유는'__noSuchMethod__ '를 사용하고 있기 때문이 아니라 모든 곳에서 그 이점을 활용하기 때문입니다. 위의'message' 함수가 동적 함수 중 하나라고 가정하고, 정의 된 부분을보고 싶습니다. 함수 정의를 검색 할 수는 없지만 동적 처리기가 작동한다는 것을 알아야합니다. –

+0

와우. 나는 이것에 응답하는 것을 잊었다라고 생각한다. 당신이 말했듯이 그들이 메시지에 정의되어 있지 않다면 전적으로 관련이 없다는 것에 전적으로 동의합니다. 나는 그것들을 함께 묶을 수있는 on-the-fly로 정의 된 속성으로 만들고 싶습니다. 제 생각에 객체를 만드는 구문 스타일은 섹시합니다 :-) – Matt

관련 문제