【问题标题】:is it possible to divide JavaScript variable? [duplicate]是否可以划分 JavaScript 变量? [复制]
【发布时间】:2013-08-29 06:38:12
【问题描述】:

就像,我有这样的条件:

var a="avar", b=3;
var a+b="some value";
// expecting to make, avar3="some value";

有可能吗? 或者有什么替代方法?

【问题讨论】:

  • 你试过了吗?你发现了什么?
  • 我不认为你可以这样做
  • 你想用这个实现什么?你为什么不直接var avar3
  • 这样做的目的是什么?您始终可以将对象用作字典并以这种方式添加属性。您也可以使用全局对象(浏览器中的window)来执行此操作。但是,通常没有理由这样做。

标签: javascript


【解决方案1】:

你可以这样做:

var a="avar", b=3;
window[a+b]="some value";

这将声明一个全局变量avar3,其值为"some value"

【讨论】:

  • 需要注意的是,这里window指的是全局对象。在浏览器中,它是 window,但不一定会延续到其他 JavaScript 应用程序(例如 Node.js)。
  • 正是我想要的 :) 谢谢
【解决方案2】:

这个:

function ns() { return this; }

var a="avar", b=3;
ns()[a+b] = "some value";

alert(avar3);

将在当前命名空间中创建名为“avar3”的变量。

【讨论】:

    【解决方案3】:

    否 不能那样工作。

    我不知道这是不是你想要做的,但是:

    var c=a+b; c="一些价值";

    【讨论】:

      【解决方案4】:

      您可以将对象属性用于这样的事情

       var obj = { a: 'avar', b:'3'};
       obj[obj.a+obj.b]='some value';
       console.log(obj.avar3);  //the output is 'some value'
      

      http://jsfiddle.net/fGaFJ/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-22
        • 2011-11-23
        • 2015-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-18
        • 1970-01-01
        相关资源
        最近更新 更多