Javascript中的“变量”变量?

Javascript中的“变量”变量?

我知道PHP中可能有“变量”变量。例如


$x = "variable";

$$x = "hello, world!";

echo $variable; // displays "hello, world!"

是否可以在javascript中将变量的名称引用为字符串?怎么做?


慕莱坞森
浏览 649回答 4
4回答

jeck猫

对此没有单一的解决方案(嗯,有eval,但不要认真考虑)。可以通过动态访问某些全局变量window,但这对于函数本地变量不起作用。不成为属性的全局变量是window用let和定义的变量const,以及classes。几乎总是比使用变量变量更好的解决方案!相反,您应该查看数据结构并为您的问题选择正确的数据结构。如果你有一组固定的名字,比如// BADvar foo = 42;var bar = 21;var key = 'foo';console.log(eval(key));将这些名称/值存储为对象的属性,并使用括号表示法动态查找它们:// GOODvar obj = {  foo: 42,  bar: 21,};var key = 'foo';console.log(obj[key]);在ES2015 +中,使用简洁的属性表示法为现有变量执行此操作更加容易:// GOODvar foo = 42;var bar = 21;var obj = {foo, bar};var key = 'foo';console.log(obj[key]);如果你有“连续”编号的变量,例如// BADvar foo1 = 'foo';var foo2 = 'bar';var foo3 = 'baz';var index = 1;console.log(eval('foo' + index));然后你应该使用数组而只是使用索引来访问相应的值:// GOODvar foos = ['foo', 'bar', 'baz'];var index = 1;console.log(foos[index - 1]);

尚方宝剑之说

要在javascript中仅使用字符串引用变量,您可以使用window['your_variable_name']您也可以在变量中设置和引用变量和对象。
打开App,查看更多内容
随时随地看视频慕课网APP