我遇到了麻煩,無法找到有關此問題的詳細信息。 我想在Foo()中實例化Bar()而不必傳遞指向Foo()的指針。或者Bar()知道它是Foo()的一個孩子。這可能嗎?或者我已經在使用足夠的方法了?嘗試獲取對象以識別其父對象而不將父項傳遞給子項的實例
基本上,我試圖避免像呼叫:
var bar1 = new Bar(this,someValue);
下面我有我目前使用的方法粗略的例子。
function Bar(p,val) {
var par = p,
value = val;
this.__defineGetter__("value", function() {
return par.dun.value + value;
});
}
function Dun(val) {
var value = val;
this.__defineGetter__("value", function() {
return value;
});
}
function Foo() {
var dun = new Dun(15);
var bar1 = new Bar(this, 10);
var bar2 = new Bar(this, 20);
this.__defineGetter__("dun", function() {
return dun;
});
this.__defineGetter__("bar1", function() {
return bar1;
});
this.__defineGetter__("bar2", function() {
return bar2;
});
}
var myFoo = new Foo();
myFoo.bar1.value;
謝謝。
所以,我應該只是堅持我現在做的方式? :) – Duncan
是的,要麼是,要麼你在Foo中定義Bar,然後使用該範圍來訪問它。 –
@Duncan,我已經向你展示了另一種方式來實現我的新答案(我不確定是否比將this'傳遞給構造函數更好),但這是另一種選擇。 – jfriend00