JavaScript在变量名中有一个变量

use*_*460 -1 html javascript variables

我有一个变量varName,其内容为"myvar".我想创建一个名称variable和内容的变量varName,因此名称将是variablemyVar.

我该怎么做呢?

Ing*_*ürk 6

你可以做

window["variable" + varName] = 42;
console.log(variablemyvar); // 42
Run Code Online (Sandbox Code Playgroud)

这将使变量成为全局变量.而不是window,你可以使用任何范围(对象),即

var myObject = {
    someOtherVariable: 1337
};

myObject["variable" + varName] = 42;
console.log(myObject.variablemyvar); // 42
Run Code Online (Sandbox Code Playgroud)

但是,您应该尽可能避免这样做.这样做的原因是像这样的代码很容易 - 比如说你想稍后重命名变量.很可能你会忽略这一点,即使是IDE也会.另一个原因是代码缩小器将无法将其缩小,如果将它们设置为"激进",它甚至会在缩小时破坏代码.

最后,特别是使用第一个例子window,全局变量被认为是不好的做法,无论你如何声明它们都应该始终避免.

  • 此外,您可能想要解释_why_建议不要这样做,而不是仅仅将其说明为事实. (2认同)
  • 我添加了几个原因.如果您有更多,请随意编辑它们:) (2认同)