设置javascript变量=";变量";

设置javascript变量=";变量";,javascript,variables,Javascript,Variables,我有一个名为temp的javascript变量 最终,temp将等于许多字符串中的一个,我们现在假设它等于“stack” 如何动态地将变量(在本例中为现有全局变量)设置为等于字符串“stack” 因此,如果在另一个时间点,temp设置为“溢出”,我如何设置overflow=“overflow” 谢谢你的帮助 我看到一些答案提到了eval,还有一些提到了使用括号~这个[变量],但似乎无法理解这一点。运行这个,看看会发生什么 var x = "something"; window[x] = x;

我有一个名为
temp
的javascript变量

最终,
temp
将等于许多字符串中的一个,我们现在假设它等于
“stack”

如何动态地将变量(在本例中为现有全局变量)设置为等于字符串
“stack”

因此,如果在另一个时间点,
temp
设置为
“溢出”
,我如何设置
overflow=“overflow”

谢谢你的帮助


我看到一些答案提到了
eval
,还有一些提到了使用括号~
这个[变量]
,但似乎无法理解这一点。

运行这个,看看会发生什么

var x = "something";

window[x] = x;

alert(window.something);
这是因为javascript对象的行为类似于哈希表


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

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

// 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.overflow
tempVars['overflow']
访问“overflow”。从技术上讲,您可以通过使用
窗口
对象而不是
临时变量
,以这种方式分配全局变量,但总的来说这是个坏主意。

我不知道您的意思。可能是重复的谢谢,杰克!正如我所期待的,它“有效”,因为全局变量是作为全局对象的属性添加的。没有其他执行上下文(函数或eval)会这样做。