2010-11-28 7 views
0

Je voudrais choisir la variable à transmettre à une fonction en fonction de la valeur d'une autre variable, sans utiliser une instruction IF ou switch .JavaScript - sélectionner la variable à transmettre en fonction de la valeur d'une autre variable (sans utiliser de if)

Par exemple, si var1 = jaune, passez la variable jaune. Si var1 = rouge, passez la variable rouge. Mais sans utiliser un IF ...

Exemple réel: J'ai un tas de variables déclarées qui correspondent aux noms que j'attends d'être renvoyés par l'appel de evt.target. $ Name ci-dessous. Je veux passer la variable qui correspond à la valeur de event.target. $ Name.

var listener = function (evt) { 
     toPass = evt.target.$name; 
     myInfobubbles.addBubble("hello", toPass); 
    } 

Je suis un newbie JavaScript donc désolé si la réponse est évidente.

+1

Où ces variables sont-elles définies? –

+0

Je crois que eval est ce que vous recherchez: 'toPass = eval (evt.target. $ Name);' –

+0

@Shadow - pas si cela peut être évité. –

Répondre

1

La réponse est d'utiliser la notation de parenthèse. Cela dépend de l'endroit où sont définies vos variables. Si sur window (le type de défaut):

var listener = function (evt) { 
    toPass = evt.target.$name; 
    myInfobubbles.addBubble("hello", window[toPass]); 
} 
+0

Salut, le les variables sont définies avec une portée globale dans la même zone. Tout le JS est actuellement assis dans la zone de mon document html. La "fenêtre" ci-dessus se réfère-t-elle à la portée des variables? –

+0

Dépend de la façon dont vous définissez vos variables, voir ceci: http://jsfiddle.net/BdVp4/1/ –

Questions connexes