(Diese Frage ist nicht wirklich auf die Sprache beschränkt, also können Sie auch in anderen Sprachen eine Lösung vorschlagen.)
Ich habe mich nur gefragt, ob es möglich wäre, so etwas in JavaScript zu schreiben:
%Vor%Wo wäre der traditionelle Weg zu schreiben
%Vor%Entschuldigung, wenn das eine Frage ohne Frage ist: p
Sie können es leicht schreiben:
%Vor%Wenn Sie in die Tiefe gehen wollen, empfehle ich Ihnen, currying und Teilfunktionsanwendung , diese Themen sind wirklich interessant.
Ich habe gerade einen kleinen Helfer geschrieben, um solche APIs in einer etwas konsistenten Weise zu erstellen, vielleicht gefällt es euch.
%Vor% Die Idee ist, dass Sie einen fließenden Builder mit einem Anfangszustand vom Typ S
konstruieren, indem Sie eine Eingabefunktion aufrufen. Dann wechselt jeder angekettete Aufruf den Zustand in einen neuen Zustand.
Der Wert, den Sie erhalten, wenn Sie eine Reihe von Aufrufen verketten, kann als eine Funktion ausgeführt werden, die exit aufruft, um einen Wert aus diesem Zustand und allen Optionen, die Sie übergeben, zu konstruieren.
Zum Beispiel
%Vor% Also 0
, 1
sind Eintritts- und Austrittsfunktionen. Alle anderen Funktionen wechseln einen internen Zustand.
Alle Funktionen können Argumente annehmen, z. opt
Wir erstellen eine Instanz unserer neu gestalteten API,
%Vor%Und nenne es
%Vor%Sehen Sie sich die (kleine) Quelle an Sehen Sie, wie dies implementiert wird.
ps. Benutzte diese Antwort um Dokumente zu aktualisieren: D
Tags und Links javascript method-chaining