2012-07-05 58 views
0

我的JavaScript代碼有問題。我現在從一些更復雜的事情開始,似乎在網上找到了一些答案,但不幸的是我無法修復它。問題是:來自變量的Javascript屬性

我想要的變量sGetMobileFieldValMob的參數,以獲得,但這樣它不工作:

var oFieldValues = { sGetMobileField:) { Value: ValMob } }; 

變量似乎並沒有作爲一個對象的屬性來工作。任何人都可以幫我修復它?

感謝, 丹麥

回答

3

試試這個

var oFieldValues = { }; 
oFieldValues[ sGetMobileField ] = { Value: ValMob }; 

您可以使用變量作爲屬性標識符,而不是一個對象字面內。您必須先創建對象,然後纔可以添加動態屬性使用

obj[ varToHoldPropertyName ] = someValue; 
+0

你是最棒的。非常感謝你! – Dane 2012-07-05 15:19:19

0

首先,語法看起來不正確。我猜sGetMobileField:之後的「)」是一個錯字。但是,你在這裏做的是設置一個名爲「sGetMobileField」屬性:出於同樣的原因

var oFieldValues = { sGetMobileField: { Value: ValMob } }; 

確切說與Value你設置一個名爲「Value」屬性,而不是從一個得到它的名字屬性Value變量。這是一致的,對嗎?所以,你將有:

console.log(oFieldValues.sGetMobileFields.Value) // the content of ValMob. 

幸運的是,在JS,你可以使用方bracked符號,而不是點號的。這意味着,您可以使用字符串訪問屬性。所以,舉例來說:

console.log("Hello"); 

是一樣的:

console["log"]("Hello"); 

因此,你可以使用一個變量的值來指定對象的屬性來訪問。你的情況:

var oFieldValues = {}; 

oFieldValues[sGetMobileField] = { Value: ValMob }; 

注意以下一般在JS使用的命名約定,ValuevalueValMob應該valMob