-1

我有一个变量varName,它的内容是“myvar”。我想创建一个变量,其名称variable和内容为varName,因此名称为variablemyVar

我该怎么做呢?

4

1 回答 1

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,全局变量被认为是不好的做法,无论您如何声明它们,都应始终避免使用。

于 2013-10-18T16:26:46.167 回答