2013-10-18 45 views
-1

我有一個變量varName,它的內容是「myvar」。我想創建一個名稱爲variablevarName的內容的變量,因此名稱將爲variablemyVarJavaScript有一個變量名稱變量

我該怎麼做?

+5

愛的事實谷歌搜索的確切標題提出了上述重複。 :) – epascarello

回答

6

你可以做

window["variable" + varName] = 42; 
console.log(variablemyvar); // 42 

這將使全球變量。取而代之的window,您完全可以儘可能使用任何範圍(對象),即

var myObject = { 
    someOtherVariable: 1337 
}; 

myObject["variable" + varName] = 42; 
console.log(myObject.variablemyvar); // 42 

然而,你應該避免這樣做。這樣做的原因是,這樣的代碼很容易破解 - 比如說你想稍後重命名這個變量。很可能你會忽略這一點,甚至IDE也會。另一個原因是代碼縮小器將無法縮小這一點,如果您將它們設置爲「積極」,它甚至會在縮小期間破壞代碼。

最後,特別是使用window的第一個例子,全局變量被認爲是不好的做法,應該始終避免使用全局變量,無論您如何聲明它們。

+2

此外,您可能想要解釋_why_建議不要這樣做,而不是僅僅將其作爲事實陳述。 –

+2

我添加了一些原因。如果你有更多,請隨時編輯:) –