首页  >  问答  >  正文

JavaScript 中的“变量”变量

<p>我知道 PHP 中可能有“可变”变量。例如,</p> <pre class="brush:php;toolbar:false;">$x = "variable"; $$x = "Hello, World!"; echo $variable; // Displays "Hello, World!" </pre> <p>是否可以在 JavaScript 中通过名称作为字符串来引用变量?该怎么做呢?</p>
P粉212971745P粉212971745446 天前531

全部回复(2)我来回复

  • P粉494151941

    P粉4941519412023-08-25 16:40:34

    如果您迫切希望这样做,您可以尝试使用 eval():

    var data = "testVariable";
    eval("var temp_" + data + "=123;");
    alert(temp_testVariable);

    或者使用窗口对象:

    var data = "testVariable";
    window["temp_" + data] = 123;
    alert(window["temp_" + data]);

    回复
    0
  • P粉893457026

    P粉8934570262023-08-25 11:49:08

    tl;dr:不要'不要使用eval

    对此没有单一的解决方案。可以通过窗口动态访问一些全局变量,但这不适用于函数的本地变量。 成为window属性的全局变量是用letconst定义的变量,以及类。

    几乎总是有比使用可变变量更好的解决方案! 相反,您应该查看 数据结构并为您的问题选择正确的数据结构。

    如果您有一组固定的名称,例如

    // BAD - DON'T DO THIS!!!
    var foo = 42;
    var bar = 21;
    
    var key = 'foo';
    console.log(eval(key));

    回复
    0
  • 取消回复