2012-09-19 207 views
3

我有一个问题,我希望在javascript中使用一个变量的内容作为另一个变量名称。在这种情况下,我不知道该变量中的内容是什么,我只知道它是一种文本类型,我希望我需要声明的变量将使用该文本作为其名称。如何使用变量的内容在javascript中声明另一个变量?

任何人都可以给我一些建议如何做到这一点?

谢谢!

+1

请在这里发布您的代码。 – j08691

+0

像动态变量?检查出http://stackoverflow.com/questions/2413414/is-there-an-easy-way-to-create-dynamic-variables-with-javascript#2413453 – JKirchartz

回答

3

你真的不能,variable名(标识符)是静态的(只要你不使用eval)的范围。

但是,您可以轻松地为use objects。访问它们的特性与变量名是很容易,使用bracket notation

var obj = { someprop:"someval", otherprop:… }, 
    name = "someprop"; 
obj[name]; // "someval" 

如果你需要一个全局变量,你可以做,通过访问作为全局对象的属性(在浏览器:window):

variable = "someval"; 
var name = "variable"; 
window[name]; // "someval" 
+0

哈哈,我只是打字如何做到这一点一个全球性... +1 – JKirchartz

3

您可以只要使用一个变量的值作为另一个变量的名字,因为后者变量可以通过括号标记,例如访问

var firstVariable = 'secondVariable'; 

window[firstVariable] = 'secondValue'; 
// you now have a global variable 
// named "secondVariable" with the value "secondValue" 

注意我不推荐混淆这样的全局命名空间;这只是为了示范。

+0

+1推荐避免全局变量 – Bergi