2010-07-29 5 views
0

Je donne les résultats suivants:javascript consolidation instruction switch

switch(state) { 
    case MyStates.StateA: 
    //do something 
    break; 
    case MyStates.StateB: 
    //do something 
    break; 
    case MyStates.StateC: 
    //do something 
    break; 

}

Say StateB et StateC les deux ont besoin de traiter le même morceau de code, comment puis-je éviter la duplication? Notez que je ne peut pas définir MyStates.StateB = MyStates.StateC; ils doivent différer et peuvent également être de différents types. Je veux faire quelque chose comme la déclaration illégale suivante:

case MyStates.StateB || case MyStates.StateC : 
+0

TRUC: Le mot-clef 'break' est utilisé pour arrêter fall-through. http://javascript.about.com/od/hintsandtips/a/fallthrough.htm –

Répondre

9
switch(state) { 
    case MyStates.StateA: 
    //do something for A 
    break; 
    case MyStates.StateB: 
    case MyStates.StateC: 
    //do something for B and C 
    break; 
} 
+0

Par souci d'exhaustivité, vous devez également inclure la valeur par défaut:/break; bloquer aussi bien. –