Имя переменной из переменной значения

Как я могу использовать значение переменной для обозначения переменной?

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

Ответ 1

Если вы поместите их в объект, вы можете сделать это вместо:

var Container = {};
var xyz = "test";
Container[xyz] = "abc";
alert(Container['test']);

Ответ 2

Имя переменной не может быть результатом выражения, если вы не используете eval, который вы не хотите делать, или если это глобальная переменная.

Если вам требуется динамическое именование, вы должны использовать объект и динамически назвать его свойства. Это также то, как глобально можно создавать динамически.

var xyz = "test";

//global

window[xyz] = "abc";

alert(test);    // "abc"

// object property

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

alert(myData.test);    // "abc"

Ответ 3

eval делает следующее:

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

Я уверен, что многие говорят "НЕТ" для оценки. Но это делает.

Ответ 4

Без использования eval или с, что-то вроде этого невозможно, и эти методы не рекомендуются по разным причинам.

Однако вы можете использовать переменную как ключ для свойства объекта:

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

obj[key] = 'another value';

Пока настройки свойств глобального объекта (окна в браузерах) будут делать то, что вы просите, я настоятельно рекомендую не писать код бизнес-логики непосредственно в глобальном масштабе, особенно с именами динамических переменных. Потенциал случайных ошибок столкновения имен слишком суровый.

Ответ 5

Если это глобальная область

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

Лучше использовать объект

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

Пример JSFiddle

Ответ 6

var xyz = "test";   
eval ( xyz + "= 'abc';");
alert (test);