変数値を使用して変数に名前を付けるにはどうすればよいですか?
var xyz = "test";
var (xyz) = "abc";
alert (test);
それらをオブジェクトに入れる場合、代わりにこれを行うことができます:
var Container = {};
var xyz = "test";
Container[xyz] = "abc";
alert(Container['test']);
変数名は、使用eval
したくない を使用しない限り、またはそれがグローバル変数でない限り、式の結果になることはできません。
動的な命名が必要な場合は、オブジェクトを使用し、そのプロパティに動的に名前を付ける必要があります。これは、グローバルを動的に作成する方法でもあります。
var xyz = "test";
//global
window[xyz] = "abc";
alert(test); // "abc"
// object property
var myData = {};
myData[xyz] = "abc";
alert(myData.test); // "abc"
var xyz = "test";
eval ( xyz + "= 'abc';");
alert (test);
eval はこれを行います:
xyz = "test";
eval(xyz+"=123");
alert(test); // gives 123
多くの人が評価にノーと言うと確信しています。しかし、これはそれを行います。
eval または with を使用しないと、このようなことは不可能であり、これらの方法はさまざまな理由で推奨されません。
ただし、変数をオブジェクト プロパティのキーとして使用できます。
var key = 'somestring';
var obj = {};
obj[key] = 'another value';
グローバル オブジェクト (ブラウザーのウィンドウ) にプロパティを設定することで目的は達成できますが、特に動的変数名を使用して、グローバル スコープでビジネス ロジック コードを直接記述しないことを強くお勧めします。ランダムな名前衝突バグの可能性は深刻です。
グローバルスコープの場合
var xyz = "test";
window[xyz] = "abc";
alert (test);
オブジェクトを使用する方が良い
var myObject = {};
var xyz = "test";
myObject [xyz] = "abc";
alert (myObject.test);