Heim  >  Artikel  >  Web-Frontend  >  Beispiel für das Schreiben mithilfe eines Befehlsobjekts anstelle von Switch-Statement_Javascript-Fähigkeiten

Beispiel für das Schreiben mithilfe eines Befehlsobjekts anstelle von Switch-Statement_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 16:12:101412Durchsuche

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:

Code kopieren Der Code lautet wie folgt:

// Methode wechseln
Funktion testSwitch(name) {
Schalter (Name) {
Fall '1':
                    return 'hack';
                 Pause;
Fall '2':
                     return 'slash';
                 Pause;
Fall '3':
                    return 'run';
                 Pause;
                 Standard:
                       return false;
                 Pause;
}
}
//Befehlsobjekt verwenden
Funktion testFn(name) {
      Var-Namen = {
              '1': function() {
                    return 'hack';
            },
              '2': function() {
                     return 'slash';
            },
              '3': function() {
                    return 'run';
            }
        };
If (Typ der Namen[Name] !== 'Funktion') {
              return false;
}
          Rückkehrnamen[name]();
}
// Testergebnisse
var result1 = testSwitch('1');
var result2 = testFn('2');
console.info(result1, result2);
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn