31
var foo = "bar"
var bar  = "realvalue";

barを使用して値を印刷することは可能fooですか?

4

8 に答える 8

44

アプローチ 1: グローバル変数

var foo = "bar";
var bar  = "realvalue";
alert(window[foo]);

また

アプローチ 2: 名前空間
js を名前空間に分割する

var namespace = {
 foo : "bar",
 bar : "realvalue"
};
alert(namespace[namespace.foo]);
于 2012-12-18T08:46:40.350 に答える
17

ええ、あなたはこのようなことをすることができますeval

var foo = "bar";
var bar  = "realvalue";
alert(eval(foo));

編集: 多くの人が eval() 関数の使用に反対しているようです。それを使用する前の私のアドバイスは、この質問を読んでください: JavaScript eval 関数を使用するのはなぜ悪い考えですか?

次に、リスクを理解したら、それを使用するかどうかを自分で決定できます。

于 2012-12-18T08:48:48.347 に答える
14

それがグローバル変数の場合は、使用できますwindow[foo]

于 2012-12-18T08:46:11.560 に答える
10

非グローバル変数を使用してこの種の構成を行うのではなく、他の方法で浮かんでいる変数をスコープするだけです。

var myscope = {
    bar: 'realvalue'
},
foo = 'bar';

alert(myscope[foo]);

ところで、上記はブラウザのデフォルトの動作に依存せず、windowオブジェクトにグローバル変数を登録するため、Node.jsなどでも機能します。

于 2012-12-18T08:55:39.247 に答える
2
var foo = "bar";
var bar  = "realvalue";
foo=bar;
console.log(foo);
alert(foo);
于 2012-12-18T11:56:40.547 に答える
2

グローバル変数はwindowオブジェクトで定義されるため、次を使用できます。

var bar = "realvalue";
alert(window["bar"]);
于 2012-12-18T08:51:12.190 に答える
1
 var foo = "bar";
 var bar  = "realvalue";
 alert(eval(foo));
于 2013-01-02T10:00:18.630 に答える
0

はいevalしかし残念なことに、 なしevalでは使えません。

于 2012-12-18T08:47:18.310 に答える