Question

En Javascript, j'ai un objet:

obj = { one: "foo", two: "bar" };

Maintenant, je veux faire ceci

var a = 'two';
if(confirm('Do you want One'))
{
  a = 'one';
}

alert(obj.a);

Mais bien sûr, ça ne marche pas. Quelle serait la bonne façon de référencer cet objet de manière dynamique?

Était-ce utile?

La solution

réponse courte: obj [a]

Réponse longue: obj.field n'est qu'un raccourci pour obj ["champ"] , dans le cas particulier où la clé est une chaîne constante sans espaces, points, ou d'autres choses méchantes. dans votre question, la clé n'était pas une constante, utilisez simplement la syntaxe complète.

Autres conseils

Comme ceci:

obj[a]

En note de bas de page, les variables globales sont attachées à la "fenêtre". objet, de sorte que vous pouvez faire

var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);

Ceci alertera "bonjour, bonjour, bonjour"

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top