【问题标题】:Is there a way to access a javascript variable using a string that contains the name of the variable?有没有办法使用包含变量名称的字符串来访问 javascript 变量?
【发布时间】:2023-04-02 11:26:01
【问题描述】:

这样我就可以有一个函数说whatever_way_you_do_this = something。这可能吗?基本上,我可以通过给函数一个包含变量名称的字符串来告诉函数我要设置哪个变量。

谢谢

【问题讨论】:

  • 不是“通过 JavaScript 中的名称字符串动态获取全局变量”的副本,这个问题没有说明变量是全局的。这很重要。

标签: javascript


【解决方案1】:

给定:

var x = {
    myproperty: 'my value'
};

您可以通过以下方式访问该值:

var value = x['myproperty'];

如果您正在寻找一个全局变量,那么您应该检查它的容器 (window);

var value = window['x']['myproperty'];

【讨论】:

    【解决方案2】:

    你可以使用

    eval(variableString);
    

    谨慎行事,因为许多人不建议使用eval()

    【讨论】:

    • 更多功能的答案。当前最佳答案只能访问属性。这可以访问普通变量和属性eval("x.myproperty");。出于好奇,为什么不推荐 eval?
    • @BryantJackson 安全是一大原因,您真的不想在生产机器上制造任意代码执行的可能性
    【解决方案3】:

    如果是名为myVar的全局变量,可以使用:

    window["myVar"]
    

    【讨论】:

    • 详细说明:function setGlobal(varName, varValue) { window[varName] = varValue; }
    【解决方案4】:

    eval 函数可以从包含变量名称的字符串中访问变量。

    eval('baseVariableName'+index) = 'something';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-14
      • 2012-09-05
      相关资源
      最近更新 更多