[英]Accessing property of parent in nested object
我正在重構一些JS代碼,需要訪問像
Object1.Object2.IsValid();
這就是我現在所擁有的。
function _Object1(object) {
this._object1 = object;
this.Object2= new _Object2();
function IsValid() {
// tests here
}
}
function _Object2()
{
function IsValid() {
// tests here but needs to use Object1 property above.
}
}
唯一的問題是,我不知道如何在不傳遞任何參數的情況下訪問Object2中的Object1。 或許在Object1中嵌套Object2?
編輯:我想在JS中實現OOP,就像重新發明輪子一樣,但是現在想嘗試一下:)
我將用OOP來解釋這個問題:
我有一個類_Object1
,它有一個方法IsValid()
。 _Object1
還有一個屬性Object2
,其類型為_Object2
。
現在, _Object2
還有一個名為IsValid()
方法。 但是這里有一個catch, _Object2.IsValid
需要_Object2.IsValid
的值_Object1
進行測試。
對於上面的代碼,如果我這樣做:
var Object1 = new _Object1();
我可以簡單地為結果調用Object1.Object2.IsValid()
。 不是嗎?
免責聲明:我現在一直在使用JS,但從來不必涉及這些事情。
給_Object2
它需要的東西:
function _Object1(object) {
this._object1 = object;
this.Object2= new _Object2(this);
function IsValid() {
// tests here
}
}
function _Object2(parentObject)
{
function IsValid() {
// parentObject refers to the _Object1 that created this object
}
}
我認為你要找的東西是不可能的,除非你願意將數據傳遞給對象。
只是因為_Object2
實例是在_Object1
構造函數中創建的,它不會自動引用_Object1
實例的數據。 您必須在構造函數或通過其他方法告訴_Object2
實例有關_Object1
值:
function _Object2(parentObject) { /* ... */ }
// or
_Object2.prototype.setParent = function(parent) { /* ... */}
// or
myObject2.parent = this._object1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.