我有一个变量varName
,其内容为“myvar”。我想创建一个名为variable
且内容为varName
的变量,因此名称为variablemyVar
。
我该怎么做?
答案 0 :(得分:6)
你可以做到
window["variable" + varName] = 42;
console.log(variablemyvar); // 42
这将使变量成为全局变量。您可以使用任何范围(对象),而不是window
,而不是{/ p>
var myObject = {
someOtherVariable: 1337
};
myObject["variable" + varName] = 42;
console.log(myObject.variablemyvar); // 42
但是,你应该尽可能避免这样做。这样做的原因是像这样的代码很容易 - 比如说你想稍后重命名变量。很可能你会忽略这一点,即使是IDE也会。另一个原因是代码缩小器将无法缩小这一点,如果将它们设置为“激进”,它甚至会在缩小时破坏代码。
最后,特别是使用带有window
的第一个示例,全局变量被认为是不好的做法,无论你如何声明它们都应该始终避免。