在PHP中,你可以做这样惊人/可怕的事情:

$a = 1;
$b = 2;
$c = 3;
$name = 'a';
echo $$name;
// prints 1

有什么方法可以用Javascript做这样的事情吗?

例如,如果我有一个var name = '变量的名称';我可以得到一个引用的变量与名称?


当前回答

我需要绘制多个FormData在飞行和对象的方式工作得很好

var forms = {}

然后在我的循环中,无论我需要创建一个表格数据我使用

forms["formdata"+counter]=new FormData();
forms["formdata"+counter].append(var_name, var_value);

其他回答

Eval()在我的测试中不起作用。但是可以向DOM树中添加新的JavaScript代码。这里有一个函数,它添加了一个新变量:

function createVariable(varName,varContent)
{
  var scriptStr = "var "+varName+"= \""+varContent+"\""

  var node_scriptCode = document.createTextNode( scriptStr )
  var node_script = document.createElement("script");
  node_script.type = "text/javascript"
  node_script.appendChild(node_scriptCode);

  var node_head = document.getElementsByTagName("head")[0]
  node_head.appendChild(node_script);
}

createVariable("dynamicVar", "some content")
console.log(dynamicVar)

Eval是一个选项。

var a = 1; var name = 'a'; document.write (eval ());/ / 1

警告:注意,如果您不知道自己在做什么,不建议使用eval()函数,因为它会带来多种安全问题。除非绝对必要,否则使用其他东西。有关更多信息,请参阅MDN页面的eval。

只是不知道为什么一个糟糕的答案能得到这么多票。这个答案很简单,但你把它弄复杂了。

// If you want to get article_count
// var article_count = 1000;
var type = 'article';
this[type+'_count'] = 1000;  // in a function we use "this";
alert(article_count);
a = 'varname';
str = a+' = '+'123';
eval(str)
alert(varname);

试试这个…

他们的意思是不,你不能。 没有办法完成它。 所以你可以这样做

function create(obj, const){
// where obj is an object and const is a variable name
function const () {}

const.prototype.myProperty = property_value;
// .. more prototype

return new const();

}

有一个创建函数,就像在ECMAScript 5中实现的那样。