2013-10-18 47 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

我添加了一些原因。如果你有更多,请随时编辑:) –