设置javascript变量=“变量”

时间:2012-11-14 04:09:36

标签: javascript variables

我有一个名为temp的javascript变量。

最终,temp将等于众多字符串中的一个,我们现在说它等于"stack"

如何将变量(在本例中为stack,这是一个现有的全局变量)设置为动态地等于字符串"stack"

因此,如果在其他时间点,temp设置为"overflow",我该如何设置overflow = "overflow"

感谢您的帮助!

我看到一些答案提及eval而其他人提到使用括号〜this[variable],但似乎无法弄清楚这一点......

2 个答案:

答案 0 :(得分:1)

运行它,看看会发生什么

var x = "something";

window[x] = x;

alert(window.something);

这是有效的,因为javascript对象就像哈希表

但你最好不要使用窗口对象,否则你可能会覆盖你实际需要的东西。

答案 1 :(得分:1)

实现此目的的最简单方法是创建一个对象来保存这些动态变量赋值。

// object to hold temporary variables
var tempVars = {};

// as per your example, we set temp to 'overflow'
var temp = 'overflow';

// now we can set tempVars.overflow
tempVars[temp] = temp;   

然后您使用tempVars.overflowtempVars['overflow']访问“溢出”。从技术上讲,可以使用window对象而不是tempVars以这种方式分配全局变量,但这通常是一个坏主意。