Ich glaube nicht, dass ich schon Curry gemacht habe. Ich verstehe, was es tut und wie es geht. Ich kann mir einfach keine Situation vorstellen, in der ich sie nutzen würde.
Wo verwenden Sie Currying in JavaScript (oder wo verwenden die Hauptbibliotheken es)? Beispiele für DOM-Manipulationen oder allgemeine Anwendungsentwicklungen sind willkommen.
Eine der Antworten erwähnt Animation. Funktionen wie slideUp
, fadeIn
nehmen ein Element als Argumente und gibt normalerweise ein curried Funktion die Funktion höherer Ordnung mit der Default „Animationsfunktion“ built-in zurückkehrt. Warum ist das besser, als nur die übergeordnete Funktion mit einigen Standardeinstellungen anzuwenden?
Gibt es irgendwelche Nachteile bei der Verwendung?
Wie hier angefordert, gibt es einige gute Ressourcen zum JavaScript-Currying:
- http://www.dustindiaz.com/javascript-curry/
- Crockford, Douglas (2008) JavaScript: Die guten Teile
- http://www.svendtofte.com/code/curried_javascript/ (Macht einen Umweg in ML, überspringen Sie also den gesamten Abschnitt von "Ein Crashkurs in ML" und beginnen Sie erneut mit "Wie schreibe ich Curry-JavaScript?")
- http://web.archive.org/web/20111217011630/http://blog.morrisjohns.com:80/javascript_closures_for_dummies
- Wie funktionieren JavaScript-Schließungen?
- http://ejohn.org/blog/partial-functions-in-javascript (Herr Resig über das Geld wie gewohnt)
- http://benalman.com/news/2010/09/partial-application-in-javascript/
Ich werde mehr hinzufügen, wenn sie in den Kommentaren auftauchen.
Entsprechend den Antworten sind Currying und teilweise Anwendung im Allgemeinen Bequemlichkeitstechniken.
Wenn Sie eine übergeordnete Funktion häufig „verfeinern“, indem Sie sie mit derselben Konfiguration aufrufen, können Sie die übergeordnete Funktion curry (oder Resigs Teilfunktion verwenden), um einfache, präzise Hilfsmethoden zu erstellen.
svendtofte.com
sieht tot aus - gefunden auf dem WayBack-Computer unter web.archive.org/web/20130616230053/http://www.svendtofte.com/… Entschuldigung, blog.morrisjohns.com/javascript_closures_for_dummies scheint nicht verfügbar zu sein Auch