在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 = '变量的名称';我可以得到一个引用的变量与名称?
当前回答
这是一个例子:
for(var i=0; i<=3; i++) {
window['p'+i] = "hello " + i;
}
alert(p0); // hello 0
alert(p1); // hello 1
alert(p2); // hello 2
alert(p3); // hello 3
另一个例子:
var myVariable = 'coco';
window[myVariable] = 'riko';
alert(coco); // display : riko
因此,myVariable的值“coco”变成了一个变量coco。
因为全局作用域中的所有变量都是Window对象的属性。
其他回答
我需要绘制多个FormData在飞行和对象的方式工作得很好
var forms = {}
然后在我的循环中,无论我需要创建一个表格数据我使用
forms["formdata"+counter]=new FormData();
forms["formdata"+counter].append(var_name, var_value);
使用Object也很棒。
var a=123
var b=234
var temp = {"a":a,"b":b}
console.log(temp["a"],temp["b"]);
对于那些需要导出动态命名变量的人来说,这是一种替代方法
export {
[someVariable]: 'some value',
[anotherVariable]: 'another value',
}
// then.... import from another file like this:
import * as vars from './some-file'
另一种方法是简单地创建一个对象,其键是动态命名的
const vars = { [someVariable]: 1, [otherVariable]: 2 };
// consume it like this
vars[someVariable];
您可以使用窗口对象来获取它。
window['myVar']
Window有一个对你正在使用的所有全局变量和全局函数的引用。
Eval是一个选项。
var a = 1; var name = 'a'; document.write (eval ());/ / 1
警告:注意,如果您不知道自己在做什么,不建议使用eval()函数,因为它会带来多种安全问题。除非绝对必要,否则使用其他东西。有关更多信息,请参阅MDN页面的eval。