2012-07-05 2 views
0

J'ai un problème avec mon code JavaScript. Je commence avec des choses plus complexes en ce moment, j'ai semblé trouver des réponses sur le net, mais malheureusement je n'arrive pas à le résoudre. Le problème est:Propriété Javascript de la variable

Je veux les variables sGetMobileField et ValMob pour obtenir les paramètres, mais comme celui-ci, il ne fonctionne pas:

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

Les variables ne semblent pas fonctionner comme propriété d'objet. Quelqu'un peut-il m'aider à le réparer?

Merci, Dane

Répondre

3

Essayez cette

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

Vous pouvez utiliser des variables comme identificateurs de propriété, mais pas à l'intérieur d'un objet littéral. Vous devez d'abord créer l'objet, puis ajouter des propriétés dynamiques en utilisant

obj[ varToHoldPropertyName ] = someValue; 
+0

Vous êtes le meilleur. Merci beaucoup! – Dane

0

Tout d'abord, la syntaxe ne semble pas correcte. Je suppose que le ")" après sGetMobileField: est une faute de frappe. Cependant, qu'est-ce que vous faites ici est défini une propriété appelée « sGetMobileField »:

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

exactement pour la même raison que, avec Value sont vous définissez une propriété appelée « valeur » et non une propriété qui se son nom d'une Value variable. C'est cohérent, n'est-ce pas? Vous aurez donc:

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

Heureusement dans JS, vous pouvez utiliser la notation carrée à la place de la notation par points. Cela signifie que vous pouvez accéder à une propriété en utilisant une chaîne. Ainsi, par exemple:

console.log("Hello"); 

est le même de:

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

Par conséquent, vous pouvez utiliser la valeur d'une variable pour spécifier la propriété de l'objet d'accès. Dans votre cas:

var oFieldValues = {}; 

oFieldValues[sGetMobileField] = { Value: ValMob }; 

avis que, suite à la convention de nommage habituellement utilisé dans JS, Value devrait être value et ValMob devrait être valMob.

Questions connexes