2013-06-24 41 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方法