Jemand hat einmal gesagt, dass ein wirklich gutes Programm kein if..else hat. Natürlich ist switch nicht so gut wie if..else. Die Verwendung von Schaltern ist in der JS-Spezifikation verboten.
Das Befehlsobjekt löst dieses Problem perfekt.
Zitat aus einem ausländischen Blog:
JavaScript verfügt über gute Kontrollflussanweisungen, die oft in geschweifte Klammern eingeschlossen sind. Es gibt eine Ausnahme: die switch … case-Anweisung. Das Merkwürdige an switch ... case ist, dass Sie am Ende jedes case das Schlüsselwort break hinzufügen müssen, um zu verhindern, dass die Flusskontrolle in die nächste case-Anweisung übergeht. Traversal bezieht sich auf die Methode zur Ausführung mehrerer Fälle. Wenn die erwartete Unterbrechung nicht auftritt, wird die Kontrolle automatisch an den nächsten Fall übergeben. Allerdings können Sie, genau wie bei Semikolons und geschweiften Klammern, versehentlich vergessen, „break“ zu schreiben. In diesem Fall ist die spätere Fehlerbehebung schwieriger, da die Anweisung selbst korrekt ist. Daher empfiehlt es sich, case ... break paarweise zu schreiben.
Wir sagen normalerweise, dass JavaScript über elegante Objektliterale und Funktionen der obersten Ebene verfügt, die spezifische Methodenabfragen sehr einfach machen. Die für Methodenabfragen erstellten Objekte werden Aktionsobjekte oder Befehlsobjekte genannt und in vielen Software-Entwurfsmustern verwendet, einschließlich des leistungsstarken und nützlichen Befehlsmusters.
Beispiel: