2

変数値を使用して変数に名前を付けるにはどうすればよいですか?

var xyz = "test";   
var (xyz) = "abc";
alert (test);
4

6 に答える 6

5

それらをオブジェクトに入れる場合、代わりにこれを行うことができます:

var Container = {};
var xyz = "test";
Container[xyz] = "abc";
alert(Container['test']);
于 2012-10-01T18:01:08.493 に答える
2

変数名は、使用evalしたくない を使用しない限り、またはそれがグローバル変数でない限り、式の結果になることはできません。

動的な命名が必要な場合は、オブジェクトを使用し、そのプロパティに動的に名前を付ける必要があります。これは、グローバルを動的に作成する方法でもあります。

var xyz = "test";

//global

window[xyz] = "abc";

alert(test);    // "abc"

// object property

var myData = {};
myData[xyz] = "abc";

alert(myData.test);    // "abc"
于 2012-10-01T18:00:10.093 に答える
0
var xyz = "test";   
eval ( xyz + "= 'abc';");
alert (test);
于 2012-10-01T18:03:34.030 に答える
0

eval はこれを行います:

xyz = "test";
eval(xyz+"=123");
alert(test); // gives 123

多くの人が評価にノーと言うと確信しています。しかし、これはそれを行います。

于 2012-10-01T18:01:08.673 に答える
0

eval または with を使用しないと、このようなことは不可能であり、これらの方法はさまざまな理由で推奨されません。

ただし、変数をオブジェクト プロパティのキーとして使用できます。

var key = 'somestring';
var obj = {};

obj[key] = 'another value';

グローバル オブジェクト (ブラウザーのウィンドウ) にプロパティを設定することで目的は達成できますが、特に動的変数名を使用して、グローバル スコープでビジネス ロジック コードを直接記述しないことを強くお勧めします。ランダムな名前衝突バグの可能性は深刻です。

于 2012-10-01T18:01:29.290 に答える
0

グローバルスコープの場合

var xyz = "test";   
window[xyz] = "abc";
alert (test);

オブジェクトを使用する方が良い

var myObject = {};
var xyz = "test";   
myObject [xyz] = "abc";
alert (myObject.test);

JSFiddle の例

于 2012-10-01T18:02:33.610 に答える