Как я могу использовать значение переменной для обозначения переменной?
var xyz = "test";
var (xyz) = "abc";
alert (test);
Как я могу использовать значение переменной для обозначения переменной?
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"
eval делает следующее:
xyz = "test";
eval(xyz+"=123");
alert(test); // gives 123
Я уверен, что многие говорят "НЕТ" для оценки. Но это делает.
Без использования eval или с, что-то вроде этого невозможно, и эти методы не рекомендуются по разным причинам.
Однако вы можете использовать переменную как ключ для свойства объекта:
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);
var xyz = "test";
eval ( xyz + "= 'abc';");
alert (test);