의 "중첩"게터와 세터 난 JS 세터와 게터를 사용하여, 이것과 같은 구문을 달성 할 :자바 스크립트
globe.getCamera().setPosition(Position.create());
이이 식에 해당 할 supossed된다
globe.camera.position = Position.create();
function Camera() {
var x,y,z;
this.__defineGetter__("camera", function() {
alert("This is the camera getter");
});
this.__defineSetter__("camera", function(position) {
alert("This is the camera setter");
});
}
...
globe=new Camera();
globe.camera=...
c=globe.camera;
...
그러나 메신저 :
나는 다음과 같이 게터/세터의 .camera 부분의 "첫 번째 수준"을 만드는 데 아무런 문제가 없다 카메라 안의 위치 게터를 정의하는 방법에 대해서는 잘 모르겠습니다. 나는 이와 같은 것을 시도하고 있지만 작동하지 않을 것이다 :
function Position() {
this.__defineGetter__("position", function() {
alert("This is the position getter");
});
}
globe.camera=new Position();
pos=globe.camera.position;
getter 안의 경고는 나타나지 않을 것이다. 이것에 대한 단서가 있습니까? 이 행동을 성취 할 수 있습니까? 나는 Google에서 꽤 많이 검색했지만 havent는 올바른 검색어를 칠 수 있었으며 getters/setter의 예는 매우 단순한 경향이 있습니다. 미리 감사드립니다.
게터에서 결과를 반환하지 않아도됩니까? (그리고 거기에 대한 더 많은 크로스 브라우저 구문이 있다고 생각합니다) – hugomg
예, 실제 코드 반환에 존재하지만 예를 명확히하기 위해 함수 내부의 내용을 찢어 버렸습니다. 구문과 관련하여 본 예제 중 대부분은 이런 식으로 작성되었습니다. –