簡體   English   中英

為什么我不能在自定義對象中引用變量?

[英]Why can't I reference a variable within a custom object?

我只是拿起Javascript,我不明白這個問題。

我創建了一個名為DeleteReasonCodes的自定義對象,其中包含一個名為delReasonCodes的實例變量,聲明為數組。 但是,內部方法似乎無法看到此實例變量。 每次我嘗試運行它,我得到一個delReasonCodes is not defined錯誤。

也許我只是不了解Javascript范圍規則?

var DeleteReasonCodes = {

    delReasonCodes: [],

    get: function ()
    {
        return delReasonCodes;
    },

    add: function (code, desc)
    {
        delReasonCodes.push(new DeleteReasonCode(code, desc));
    }
};

不,javascript范圍屬於函數(沒有別的)。

您創建的唯一變量是DeleteReasonCodes ,並且已為其分配了一個具有3個屬性的對象。 如果您具有對象的引用,則可以通過屬性訪問器運算符訪問它們。 在您的情況下,您可以使用this.delReasonCodeDeleteReasonCodes.delReasonCode - 請參閱此答案的差異。

您正在使用另一種語言處理JavaScript對象。 JavaScript中的本地范圍僅駐留在函數內部,而不是對象。 在您的情況下,您需要使用完全限定名稱訪問數據:

DeleteReasonCodes.delReasonCodes.push();

如果你這樣做

delReasonCodes: [],

get: function() {
    return this.delReasonCodes;
},

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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