0

こんにちは、コードでキャッチされていない参照例外が発生しています。これは私が持っているものです:

 var config = {
    debug: true,
    data: {
        debug: false,
        logErrorsOnServer: true,
        defaultCulture: '',
        serviceUrl: ''
    },

    init: function(options) {
        if (!options) {
            return;
        }          
        if (options.hasOwnProperty('debug')) {
            data.debug = options.debug;
        }

    },
};

data.debug の値を取得しようとすると、キャッチされていない参照エラーが発生します。

UncoughtReference Error: data is not defined

データ オブジェクトにアクセスできないのはなぜですか?

4

2 に答える 2

1

あなたは言う必要があります:

this.data.debug = options.debug;

... (外部)オブジェクトにinit()設定する方法で関数を呼び出していると仮定します。thisconfig.init()

または、次のように言うことができます。

config.data.debug = options.debug;

直接data使用しようとしたときに定義されていないというエラーが発生した理由は、実際には変数として定義されておらず、オブジェクトのプロパティであるためです。オブジェクトのメソッドであるからといって、他のオブジェクト プロパティを自動的に参照するわけではありません。data.debugdatainit()

于 2013-06-19T11:05:55.990 に答える
0

さて、data 変数 未定義です。おそらく、あなたの.data プロパティでオブジェクトを使用したいと思うでしょう(キーワードconfigでアクセス可能):this

…
    if (options.hasOwnProperty('debug')) {
        this.data.debug = options.debug;
    }
…

アクセスするさまざまな方法については、「Javascript: 'this' ではなく、独自のキーの関数でのオブジェクト リテラル参照」も参照してください.data

于 2013-06-19T11:05:49.323 に答える