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