J'ai un problème avec mon code JavaScript. Je commence par des choses plus complexes tout en maintenant, semblait trouver des réponses sur le net, mais malheureusement je ne peux pas le réparer. Le problème est:
Je veux que les variables sGetMobileField
et ValMob
puissent entrer dans les paramètres, mais comme cela, cela ne fonctionne pas:
var oFieldValues = { sGetMobileField:) { Value: ValMob } };
Les variables ne semblent pas fonctionner comme une propriété d'objet. Quelqu'un peut m'aider à le réparer?
Merci Dane
Essaye ça
var oFieldValues = { }; oFieldValues[ sGetMobileField ] = { Value: ValMob };
Vous pouvez utiliser les variables comme identifiants de propriété, mais pas dans un littéral d'objet. Vous devez d'abord créer l'objet, puis ajouter des propriétés dynamiques en utilisant
obj[ varToHoldPropertyName ] = someValue;
Tout d'abord, la syntaxe ne semble pas juste. Je suppose que le ")" après sGetMobileField:
est une faute de frappe. Cependant, qu'est-ce que vous faites ici, définissez une propriété appelée "sGetMobileField":
var oFieldValues = { sGetMobileField: { Value: ValMob } };
Exactement pour la même raison qu'avec Value
définissez-vous une propriété appelée "Valeur" et non une propriété qui tire son nom d'une variable Value
. C'est cohérent, n'est-ce pas? Donc vous aurez:
console.log(oFieldValues.sGetMobileFields.Value) // the content of ValMob.
Heureusement, dans JS, vous pouvez utiliser la notation en forme de case au lieu de la notation de point. 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 à accéder. Dans ton cas:
var oFieldValues = {}; oFieldValues[sGetMobileField] = { Value: ValMob };
Notez qu'après la convention de nommage habituellement utilisée dans JS, la Value
doit être ValMob
et ValMob
devrait être valMob
.