2

次のように定義されたJavaScriptオブジェクトがあります...

    var f = {
        test: 'myTestContent',
        app: {
            base: {
                action: function () {
                    alert(test);
                }            
            }
        }
    };

    f.app.base.action();

問題は、 fインスタンスで定義されているテスト変数にアクセスできないことです。ネストされたオブジェクトからこのコンテキストの変数にアクセスすることは可能ですか?

現時点では、テストは未定義です。助言がありますか?ありがとう!

4

2 に答える 2

4

testグローバルに定義されていません。適切な参照を使用する必要があります。

alert(f.test);

動作するはずです。

于 2012-10-23T21:42:11.720 に答える
2

testはグローバル変数ではなく、のプロパティですf。あなたが望んでいるのは:

var f = {
    test: 'myTestContent',
    app: {
        base: {
            action: function () {
                alert(f.test);  // Notice this line.
            }            
        }
    }
};

f.app.base.action();

f.app最後の行でアクセスするのと同じようにアクセスしてください。

于 2012-10-23T21:44:27.997 に答える