2010-02-27 2 views
5

J'ai une question assez simple (et des réponses provisoires), je veux juste voir si peut-être il y a une meilleure réponse là-bas.Javascript - membre d'objet d'accès quand la chaîne d'identification est stockée dans un var

Comment accéder à un membre d'objet en javascript lorsque l'identifiant de membre est stocké dans une autre variable? Exemple:

state = 'sync'; 

messages = { 
    'sync': 'asdf', 
    'ready': 'asdf', 
    'complete': 'asdf' 
}; 

possibilités: 1. message = eval('messages.' + state);

    un message
  1. tour dans un hachage (en prototype ou jquery - pas sûr jquery) et l'accès par la méthode du cadre

Quelles sont les autres façons? Quelque chose de plus propre? En PHP, il serait simple $message = $messages->$sync.

Je suis sûr que cette question a été répondu à plusieurs reprises, mais il est difficile de chercher ... tout ce que je reçois sont des réponses eval quand je recherche pour "variables variables de

Merci de

Répondre

9
var message = messages[state]; 

Chaque objet dans JavaScript n'est pas seulement un objet dans le sens le plus usuel, mais c'est aussi un dictionnaire peuplé par ses membres.

+0

merci. Je ne savais pas que vous pourriez traiter un objet comme un hachage. – joshs

+1

Court et doux et correct. BTW, Josh, cela fonctionne si vos noms de propriété dans l'objet des messages sont ou non entre guillemets. – Robusto

Questions connexes