我要實現類似這樣的一個使用JS getter和setter方法語法:「嵌套」 getter和setter方法在JavaScript
globe.camera.position = Position.create();
這supossed等同於這個表達式:
globe.getCamera().setPosition(Position.create());
我在創造getter/setter方法,該.camera部分的「第一級」,這樣沒有問題:
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;
...
,但林不太確定如何定義相機內的位置獲取器。我正在嘗試這樣的東西,但它不會工作:
function Position() {
this.__defineGetter__("position", function() {
alert("This is the position getter");
});
}
globe.camera=new Position();
pos=globe.camera.position;
getter中的警報不會顯示出來。任何線索?是否有可能實現這種行爲?我在Google上搜索了很多,但沒有找到正確的搜索條件,而獲取/設置者的例子往往非常簡單。提前致謝。
你不必從getter返回一個結果嗎? (我認爲他們有更新的跨瀏覽器語法) – hugomg
是的,在實際的代碼返回確實存在,但我撕開了功能內的內容,以澄清例子。關於語法,我見過的大多數例子都是用這種方式寫的。 –