簡體   English   中英

在嵌套對象中訪問parent的屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM