9

Javascript には、次のオブジェクトがあります。

obj = { one: "foo", two: "bar" };

今、私はこれをしたい

var a = 'two';
if(confirm('Do you want One'))
{
  a = 'one';
}

alert(obj.a);

しかし、もちろんうまくいきません。このオブジェクトを動的に参照する正しい方法は何ですか?

4

3 に答える 3

19

簡潔な答え:obj[a]

長い答え:キーがスペース、ドット、またはその他の厄介なものを含まない定数文字列である特殊なケースのobj.field単なる省略形です。obj["field"]あなたの質問では、キーは定数ではなかったため、完全な構文を使用してください。

于 2008-10-04T04:31:26.627 に答える
6

このような:

obj[a]
于 2008-10-04T04:28:49.923 に答える
2

補足として、グローバル変数は「ウィンドウ」オブジェクトにアタッチされているため、次のことができます

var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);

これにより、「こんにちは、こんにちは、こんにちは」というアラートが表示されます

于 2008-10-04T15:32:57.103 に答える