我可以在JavaScript中使用变量作为变量名吗?

时间:2018-09-09 15:06:37

标签: javascript variable-declaration

我正在尝试使用一个变量作为另一个变量名称。例如,我有以下内容:

<?php
//upload.php  
var_export($_FILES); // this final output that i want to upload
?>

我正在尝试将其设置为这样的新变量的名称:

var dynamicname = 'name1_'

这显然行不通,但是有办法实现吗? dynamicname + '2' = 'myvalue' 是否合适?

4 个答案:

答案 0 :(得分:2)

稍有偏离,但使用对象对此的可能答案可能是:

const obj = {
    [ dynamicNameVar + '2' ]: ...
}

或者,对于守旧派的人,

var obj = {};
obj[dynamicNameVar + '2'] = ...

我希望这会有所帮助! :)

答案 1 :(得分:1)

如评论中所述,您永远不要这样做。

但是,如果您想这样做:

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);

答案 2 :(得分:1)

仅保留观看视频的指示符/标记,可以使用Set;如果需要更多存储的信息,则可以使用Map而不是在仍然需要创建动态变量的情况下使用变量的访问器。

var seen = new Set;

console.log(seen.has('foo')); // false;

seen.add('foo');

console.log(seen.has('foo')); //  true;

答案 3 :(得分:0)

正如其他人所说,这是一种不好的做法,您应该使用对象。但是,如果由于某些原因确实需要执行此操作,则正确的方法是使用window对象而不是eval。在您的情况下,将是:

var dynamicname = 'name1_'
window[dynamicname + '2'] = 'myvalue'

您可以执行alert(name1_2),它会显示“ myvalue”。

相关问题