这段代码是完全错误的,但我希望它能让你了解我的目标:
var qarowquestion+obj.returnIntJson;
obj.returnIntJson的值只是一个整数。我想获取那里的值,例如:2043,并在qarowquestion结束时添加2043。因此,我会:
var qarowquestion2043;
感谢。
答案 0 :(得分:1)
var myObj = {};
myObj['qarowquestion' + obj.returnIntJson] = 'some Val';
尝试以上方法。它将利用动态javascript并在myObj对象上创建qarowquestion2043属性。
答案 1 :(得分:0)
TGH的回复几乎是我所需要的,或者它是,我只是不知道如何使用它。
我更改了它,以便带有数字的部分是值,而不是键。
var myObj = {};
myObj['qarowquestion'] = "qarowquestion" + obj.returnIntJson;
现在,我可以使用myObj.qarowwquestion
访问它,结果如下:qarowquestion2043
对于一个具体的例子,在我的情况下:
document.getElementById("qarow" + obj.returnIntJson).innerHTML = myObj.qarowquestion;
答案 2 :(得分:0)
您无法创建变量,如TGH所述,您可以将值添加为对象内的命名属性。
var obj = {};
obj['qarowquestion' + obj.returnIntJson] = 'xxx';
通过这种方式,您还可以为对象提供适当的命名空间。
var someNameSpace = {};
someNameSpace['someObject'] = 'someVal';
希望这会有所帮助。
答案 3 :(得分:0)
我在javascript中使用动态变量名称relevant SO post,accepted answer提出了一个非常好的观点(重点是我的):
由于ECMA- / Javascript完全是关于对象和上下文(它们也是某些对象),因此每个变量都存储在一个名为Variable的变量中(或如果是函数,激活对象)。在全局范围(= NO函数上下文)中,您隐式将这些变量写入Global对象(=浏览器中的窗口)。
所以例如(再次从答案中得出):
function foobar() {
this.a = 1;
this.b = 2;
var name = window['a']; // === undefined as it refers to the global context and is undefined
alert(name);
name = this['a']; // === 1
alert(name); // outputs 1
alert(a); //outputs 1
//Since we are talking about context here, you could clearly do
this['qarowquestion'+obj.returnIntJson] = "foo";
alert(qarowquestion2043); //outputs foo
}
因此,实质上,变量可以作为特定上下文中的对象进行访问,这可能非常有用。