我有一个变量varName
,它的内容是“myvar”。我想创建一个名称为variable
和varName
的内容的变量,因此名称将为variablemyVar
。JavaScript有一个变量名称变量
我该怎么做?
我有一个变量varName
,它的内容是“myvar”。我想创建一个名称为variable
和varName
的内容的变量,因此名称将为variablemyVar
。JavaScript有一个变量名称变量
我该怎么做?
你可以做
window["variable" + varName] = 42;
console.log(variablemyvar); // 42
这将使全球变量。取而代之的window
,您完全可以尽可能使用任何范围(对象),即
var myObject = {
someOtherVariable: 1337
};
myObject["variable" + varName] = 42;
console.log(myObject.variablemyvar); // 42
然而,你应该避免这样做。这样做的原因是,这样的代码很容易破解 - 比如说你想稍后重命名这个变量。很可能你会忽略这一点,甚至IDE也会。另一个原因是代码缩小器将无法缩小这一点,如果您将它们设置为“积极”,它甚至会在缩小期间破坏代码。
最后,特别是使用window
的第一个例子,全局变量被认为是不好的做法,应该始终避免使用全局变量,无论您如何声明它们。
此外,您可能想要解释_why_建议不要这样做,而不是仅仅将其作为事实陈述。 –
我添加了一些原因。如果你有更多,请随时编辑:) –
爱的事实谷歌搜索的确切标题提出了上述重复。 :) – epascarello