JavaScript-Methode Verkettung Herausforderung

7

(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

    
kizzx2 18.09.2009, 17:03
quelle

5 Antworten

37

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.

    
CMS 18.09.2009, 17:08
quelle
14

Noch eine Version, ohne Abschluss:

%Vor%

Mit etwas mehr Code können Sie die Funktionen sogar mehrmals aufrufen:

%Vor%     
Christoph 18.09.2009 17:50
quelle
2

Verkettung wird eher verwendet, um mehrere Methoden an einem Objekt auszuführen. Sie würden also lieber die Funktion als Objekt betrachten und das Timeout dort einstellen:

%Vor%     
Gumbo 18.09.2009 17:22
quelle
0

Wenn Sie OO-Javascript ausführen, dann können Sie die Methodenverkettung durchführen.

Einige der beliebten JavaScript-Frameworks tun dies. jQuery führt dies durch Rückgabe des jQuery-Objekts für Funktionen durch, die normalerweise keinen Wert zurückgeben.

    
Powerlord 18.09.2009 17:08
quelle
0

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.

  • Eintrag: * ⟶ S
  • Übergang: (S ⟶ *) ⟶ S
  • Ausgang: S ⟶ (* ⟶ *)

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

    
wires 16.07.2014 13:01
quelle

Tags und Links