如何使用变量值来命名变量?
var xyz = "test";
var (xyz) = "abc";
alert (test);
答案 0 :(得分:5)
如果你把它们放在一个物体中,你可以这样做:
var Container = {};
var xyz = "test";
Container[xyz] = "abc";
alert(Container['test']);
答案 1 :(得分:2)
变量名称不能是表达式的结果,除非您使用eval
,这是您不想要的,或者除非它是全局变量。
如果需要动态命名,则应使用对象,并动态命名其属性。这也是动态创建全局变量的方式。
var xyz = "test";
//global
window[xyz] = "abc";
alert(test); // "abc"
// object property
var myData = {};
myData[xyz] = "abc";
alert(myData.test); // "abc"
答案 2 :(得分:0)
eval这样做:
xyz = "test";
eval(xyz+"=123");
alert(test); // gives 123
我相信很多人对eval说不。但是,这样做了。
答案 3 :(得分:0)
不使用eval或with,这样的东西是不可能的,并且出于各种原因不建议使用这些方法。
但是,您可以将变量用作对象属性的键:
var key = 'somestring';
var obj = {};
obj[key] = 'another value';
虽然在全局对象(浏览器中的窗口)上设置属性可以满足您的要求,但强烈建议不要直接在全局范围内编写业务逻辑代码,特别是使用动态变量名称。随机名称冲突错误的可能性太大了。
答案 4 :(得分:0)
如果是全球范围
var xyz = "test";
window[xyz] = "abc";
alert (test);
最好使用对象
var myObject = {};
var xyz = "test";
myObject [xyz] = "abc";
alert (myObject.test);
答案 5 :(得分:0)
var xyz = "test";
eval ( xyz + "= 'abc';");
alert (test);