2013-06-24 38 views
3

如何让后续的代码正常工作?在JS中使用字符串作为变量名?

var x = 'name'; 

,然后,使用值x里面,因为它是一个变量,并设置它,因此,如果我希望它是名字,我就会有结果:

var name = 'NAME'; 

这可能吗?

+6

这样做会导致* *真正乱码。 –

+0

也类似http://stackoverflow.com/questions/16985132/parse-a-string-as-an-object-from-data-attribute&http://stackoverflow.com/questions/6491463/accessing-nested-javascript -object-with-string-key(检索对象和变量我的字符串)。 –

回答

11

不直接,没有。但是,你可以分配到window,它分配一个全局可访问的变量:

var name = 'abc'; 
window[name] = 'something'; 
alert(abc); 

然而,一个更好的解决方案是使用自己的对象来处理这个问题:

var name = 'abc'; 
var my_object = {}; 
my_object[name] = 'something'; 
alert(my_object[name]); 
5

我的天堂”没有看到你的代码的其余部分,但更好的方法可能是使用一个对象。

var data = {foo: "bar"}; 
var x = "foo"; 
data[x]; //=> bar 

var y = "hello"; 
data[y] = "panda"; 
data["hello"]; //=> panda 

我认为这是一个少许清洁剂和​​自足比window方法