我试图使用一个变量作为另一个变量名称。例如,我有以下内容:
var dynamicname = 'name1_'
我试图将它设置为这样的新变量的名称:
dynamicname + '2' = 'myvalue'
这显然不起作用,但有没有办法实现这一目标? eval
会适合吗?
稍微关闭,但使用对象的可能答案可能是这样的:
const obj = {
[ dynamicNameVar + '2' ]: ...
}
或者,对于老派的人来说,
var obj = {};
obj[dynamicNameVar + '2'] = ...
我希望这有帮助! :)
正如评论中所提到的,你永远不应该这样做。
但是如果你想这样做:
var name ="name1_";
// declare a new var as name1_test and set it to 'TestWorked'.
eval("var "+name+"test = 'TestWorked'");
// prints value of name1_test ('TestWorked')
console.log(name1_test);
正如其他人所说,这是一种不好的做法,你应该使用对象。但是如果有人真的因某种原因需要这样做,正确的方法是使用window对象而不是eval。在你的情况下,它将是:
var dynamicname = 'name1_'
window[dynamicname + '2'] = 'myvalue'
你可以做alert(name1_2)
,它会显示“myvalue”。