1

私は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));
    }
};
4

3 に答える 3

2

いいえ、javascriptのスコープは関数に属しています(他には何もありません)。

作成した唯一の変数はであり、3つのプロパティDeleteReasonCodesを持つオブジェクトを割り当てています。オブジェクトへの参照がある場合は、プロパティアクセサ演算子を介してそれらにアクセスできます。あなたの場合、またはを使用することができます-違いについては、この回答を参照してください。this.delReasonCodeDeleteReasonCodes.delReasonCode

于 2012-11-05T17:00:48.500 に答える
1

JavaScriptオブジェクトを、別の言語のクラスと同じように扱っています。JavaScriptのローカルスコープは、オブジェクトではなく関数内にのみ存在します。あなたの場合、完全修飾名でデータにアクセスする必要があります。

DeleteReasonCodes.delReasonCodes.push();
于 2012-11-05T17:01:52.817 に答える
0

これを行う場合

delReasonCodes: [],

get: function() {
    return this.delReasonCodes;
},
于 2012-11-05T17:02:39.557 に答える