0

次のサンプルコードがあります。

type = 'Foo';

test = {
    type: {
        'fooVal': 'bar'
    }
}

alert(test.type.fooVal); // Bar
alert(test.Foo.fooVal); // TypeError: teste.Foo is undefined

2番目のアラートを機能させるにはどうすればよいですか?

私はもう試した:

test = {
    '"' + type + '"': {
        'fooVal': 'bar'
    }
}

しかし、動作しません。

4

3 に答える 3

4

代わりに、角かっこ表記を使用して割り当てを行います。

type = 'Foo';
test = {};
test[type] = {fooVal: 'bar'};
alert(test.Foo.fooVal);

オブジェクト表記を介して割り当てる場合、変数をキーとして使用することはできません。

于 2013-01-30T18:10:06.310 に答える
0

キーが変数によって定義されている場合、オブジェクトリテラルを使用することはできません。

type = 'Foo';

test = {};
test[type] = {
  fooVal: 'Bar'
};

alert(test.Foo.fooVal);  // Bar

[]onオブジェクトを使用すると、設定または取得のために、プロパティに動的にアクセスできます。

于 2013-01-30T18:10:22.830 に答える
0

と呼ばれるプロパティがありません。Fooと呼ばれるプロパティがありますtype。あなたはこのようなことをする必要があります:

type = 'Foo';

test = {};
test[type] = {
    'fooVal': 'bar'
};

alert(test.type.fooVal); // Bar
alert(test.Foo.fooVal); // TypeError: teste.Foo is undefined
于 2013-01-30T18:10:31.210 に答える