2014-11-04 97 views

回答

0

TGH的回覆幾乎是我所需要的,或者它是,我只是不知道如何使用它。

我改變了它,使具有編號的部分是值,而不是關鍵。現在

var myObj = {}; 
    myObj['qarowquestion'] = "qarowquestion" + obj.returnIntJson; 

,我可以訪問它:myObj.qarowwquestion這給出了這樣的結果:qarowquestion2043

而對於一個具體的例子,在我的情況:

document.getElementById("qarow" + obj.returnIntJson).innerHTML = myObj.qarowquestion; 
1
var myObj = {}; 
myObj['qarowquestion' + obj.returnIntJson] = 'some Val'; 

嘗試以上操作。它將利用動態JavaScript並在myObj對象上創建一個qarowquestion2043屬性。

+0

謝謝,TGH!我稍微更新了一下。 :) – 2014-11-04 05:55:42

0

不能創建變量,TGH提到你可以將你的值作爲一個命名屬性添加到一個對象中。

var obj = {}; 
obj['qarowquestion' + obj.returnIntJson] = 'xxx'; 

通過這種方式,你可以給你的對象適當的命名空間。

var someNameSpace = {}; 
someNameSpace['someObject'] = 'someVal'; 

希望這會有所幫助。

0

我正在經歷一個relevant SO post使用JavaScript中的動態變量名和accepted answer帶來了一個非常好的點(重點是我的):

由於ECMA-/ JavaScript是所有關於對象和(或者是一個函數,激活對象)。在全局作用域(= 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 
} 

所以在本質上,變量可以在特定情境下的對象可以是真正有用的訪問。

相關問題