2014-09-07 3 views
2

내 질문은 간단합니다. 어떻게 객체 게터에서 별칭을 만들 수 있습니까?객체 게터 별칭

예 :

MyClass.prototype = { 
    constructor: MyClass, 
    get a() { 
     // do stuff 
    }, 
    get ab() { 
     // do stuff 
    }, 
    get abc() { 
     // do stuff 
    } 
} 
여기

, a, ababc 정확히 같은 않지만,이 3 가지 게터가, 더 정확하게, 이상 3 개 다른 이름을 가지고 의무적으로하는 필수입니다 동일한 기능.

get a = ab = abc { 

} 

분명히 작동하지 않습니다, 어느 쪽도

get a() = ab() = abc() { 

} 

어떤 제안을합니까?

감사

+1

'get ab() {a()}', 아니요? –

+0

Javascript에 상응하는 PHP 마법 클래스 메서드를 찾고 있다면 원하는 방식으로 존재하는지 확신 할 수 없습니다. – Jhecht

답변

1
get ab(){ 
    return this.a; 
} 
+0

예, 감사합니다. 아직도 추한, 나는 생각한다. 그러나 일한다. –

1

당신이 self-reference 하나에있을 수 없습니다, 객체 리터럴 사용하지 마십시오. 대신 define the properties을 프로그래밍 방식으로 사용하면 실제로 각각에 대해 동일한 속성 설명자를 다시 사용할 수 있습니다.

var desc = { 
    configurable: true, 
    get: function() { 
     // do stuff 
    } 
}; 
Object.defineProperties(MyClass.prototype, { 
    a: desc, 
    ab: desc, 
    abc: desc 
}); 
+0

고마워, 마침내 나는 이렇게했다 : https://github.com/jim-y/checkjs/blob/master/lib/check.js#L209 –