0

我有一个名为temp.

最终,temp将等于许多字符串之一,假设现在它等于"stack"

如何动态设置变量(在这种情况下stack,这是一个现有的全局变量)等于字符串"stack"

因此,如果在另一个时间点temp设置为"overflow",我该如何设置overflow = "overflow"

谢谢你的帮助!

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

4

2 回答 2

1

运行它,看看会发生什么

var x = "something";

window[x] = x;

alert(window.something);

这是有效的,因为 javascript 对象的行为类似于哈希表

但是你最好不要使用 window 对象,否则你可能会覆盖你真正需要的东西。

于 2012-11-14T04:14:16.647 回答
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.overflow然后使用或访问“溢出” tempVars['overflow']。从技术上讲,您可以通过使用windowobject 而不是 以这种方式分配全局变量tempVars,但这通常是一个坏主意。

于 2012-11-14T04:14:20.540 回答