在PHP中,你可以做这样惊人/可怕的事情:
$a = 1;
$b = 2;
$c = 3;
$name = 'a';
echo $$name;
// prints 1
有什么方法可以用Javascript做这样的事情吗?
例如,如果我有一个var name = '变量的名称';我可以得到一个引用的变量与名称?
在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);
其他回答
如果你不想使用像window或global (node)这样的全局对象,你可以尝试这样做:
var obj = {};
obj['whatever'] = 'There\'s no need to store even more stuff in a global object.';
console.log(obj['whatever']);
您可以使用窗口对象来获取它。
window['myVar']
Window有一个对你正在使用的所有全局变量和全局函数的引用。
只是不知道为什么一个糟糕的答案能得到这么多票。这个答案很简单,但你把它弄复杂了。
// 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);
最好使用创建名称空间并在其中声明变量,而不是将其添加到全局对象。我们还可以创建一个函数来获取和设置值
请看下面的代码片段:
//creating a namespace in which all the variables will be defined.
var myObjects={};
//function that will set the name property in the myObjects namespace
function setName(val){
myObjects.Name=val;
}
//function that will return the name property in the myObjects namespace
function getName(){
return myObjects.Name;
}
//now we can use it like:
setName("kevin");
var x = getName();
var y = x;
console.log(y) //"kevin"
var z = "y";
console.log(z); //"y"
console.log(eval(z)); //"kevin"
以类似的方式,我们可以声明和使用多个变量。虽然这将增加代码行数,但代码将更健壮,更不容易出错。
a = 'varname';
str = a+' = '+'123';
eval(str)
alert(varname);
试试这个…