2

AS3은 일반적으로 메소드 또는 연산자 오버로딩을 허용하지 않지만, [] 연산자에 대한 해결 방법을 본 적이 있다고 생각합니다. 기본적으로 나는 사전에서 상속하거나 감싸려고 노력하고 있는데, 나는 반드시 상관하지 않는다. 그리고 그 연산자에 대해 약간 특별한 행동을 만든다. 즉, 두 번 연속 사용된다. (object [x] [y]). 거기에 특별한 해결 방법이나 허점을 사용할 수 있습니까? 감사!AS3에서 [] 연산자에 대한 setter 및 getter를 어떻게 재정의 할 수 있습니까?

답변

4

Proxy 클래스를 사용하면 getterssetters을 무시할 수 있습니다.

당신이 Proxy을 확장하고 클래스 dynamic을하면, 이러한 방법 오버라이드 (override) 할 수 있습니다 :로이 적용됩니다 [] 연산자를 사용

을 예상 됨 (thing.xx에 대한 getter를 재정의하는 경우 thing["x"]과 같음).

위에서 추가 한 링크를 Proxy 클래스로 살펴보면 수행하려는 것을 구현하는 방법을 보여주는 예제 코드 블록이 있습니다.

관련 문제