2012-08-30 3 views
0

getter 또는 setter는 자바 스크립트의 객체에서 어떻게 작동합니까?자바 스크립트에서 객체에 존재하지 않는 메소드 만들기

즉 난 게터와 세터 통해 게터와 세터의 선회 대가 호출을 인터셉트 할 수 물체에 존재하지 않는 방법을 호출하는 경우 파이썬

.

JavaScript에서 비슷한 기능을 수행하려면 어떻게해야합니까?

https://github.com/Flotype/now/blob/master/lib/client/now.js은 어떻게 든이 기능을 구현합니다. 나는 그 속임수를 이해하지 못했다. 누구든지 설명 할 수 있니?

+0

[\ _ \ _ defineGetter \ _ \ _ (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineGetter) –

+1

@arxanas 참조 mozilla afaik – JaredMcAteer

+0

에서 작동하며 비표준이고 다른 메소드는 어떨까요? (또는 불가능할 수도 있습니다.) – iamgopal

답변

1

Javascript에서 동일한 기능을 만드는 것은 사실상 불가능합니다. 당신이 구문을 사용하여 원하는 당신을 객체에서이 함수를 호출 할 수 있습니다

var getter = function (propName) { 
    if (propName in this) { 
     return this[propName]; 
    } else { 
     return "no prop"; 
    } 
}; 

: 나의 추측은 다음과 같이 될 것이다 그것은 최선의 해결책이 아니다

a = { "test": "yes" }; 
b = {} 
console.log(getter.call(a, "test")); 
console.log(getter.call(b, "test")); 

을하지만 난 생각하지 않는다 더 좋은 방법.

관련 문제