代码之家  ›  专栏  ›  技术社区  ›  fightstarr20

我可以在JavaScript中使用变量作为变量名吗?

  •  0
  • fightstarr20  · 技术社区  · 6 年前

    我正在尝试使用一个变量作为另一个变量名。例如,我有以下内容:

    var dynamicname = 'name1_'
    

    我试着把它设为一个新变量的名字,比如:

    dynamicname + '2' = 'myvalue'
    

    eval 合适吗?

    4 回复  |  直到 6 年前
        1
  •  1
  •   Nina Scholz    6 年前

    只需为观看的视频保留一个指示器/标志,您就可以使用 Set Map 而不是在仍然需要为变量创建访问器的情况下使用动态创建的变量。

    var seen = new Set;
    
    console.log(seen.has('foo')); // false;
    
    seen.add('foo');
    
    console.log(seen.has('foo')); //  true;
        2
  •  2
  •   weirdpanda    6 年前

    稍有偏差,但使用对象解决此问题的可能方法如下:

    const obj = {
        [ dynamicNameVar + '2' ]: ...
    }
    

    或者,对于老同学来说,

    var obj = {};
    obj[dynamicNameVar + '2'] = ...
    

    我希望这有帮助!:)

        3
  •  1
  •   dustytrash    6 年前

    正如评论中提到的,你永远不应该这样做。

    但如果你想这么做:

    var name ="name1_";
    
    // declare a new var as name1_test and set it to 'TestWorked'.
    eval("var "+name+"test = 'TestWorked'");
    
    // prints value of name1_test ('TestWorked')
    console.log(name1_test);
    
        4
  •  0
  •   Burhan B    6 年前

    var dynamicname = 'name1_'
    window[dynamicname + '2'] = 'myvalue'
    

    你能做到的 alert(name1_2)