Lassen Sie uns vorstellen, dass wir jetzt eine Aufgabe erledigen werden: Schreiben Sie JavaScript Code so weit wie möglich nach den Prinzipien der funktionalen Sprachen.
Die nächste Artikelserie besteht darin, Sie und mich diese Reise zu beginnen. Zunächst müssen wir einige der Konzepte funktionaler Sprachfehler korrigieren, die Ihnen möglicherweise in den Sinn kommen.
Funktionelle Formeln in der JS -Sprache werden ernsthaft missverstanden.
Offensichtlich gibt es ziemlich viele Entwickler, die jeden Tag das funktionale Paradigma von JavaScript verwenden möchten. Ich würde sagen, es gibt einen größeren Teil von JavaScript -Entwicklern, die diese Dinge nicht wirklich verstehen.
Ich denke, der Grund dafür ist, dass die meisten auf dem Webserver verwendeten Entwicklungssprachen von C abgeleitet sind und jeder weiß, dass diese Sprachen keine funktionalen Sprachen sind.
Es gibt im Allgemeinen zwei Verwirrungsstufen. In der ersten Schicht handelt es sich um die Verwendung im folgenden Beispiel, was eine sehr häufige Verwendung in JQuery ist:
$ (". Anmeldung"). Click (Funktion (Ereignis) {$ ("#SignUpModal"). show (); Event.PreventDefault ();});Im obigen Code: Wir übergeben eine anonyme Funktion als Parameter, die die berüchtigte Rückruffunktion in JavaScript ist. Werden diese Funktionen aufgerufen? Gar nicht!
Das obige Beispiel zeigt ein Schlüsselmerkmal einer funktionalen Sprache: Eine Funktion ist ein Parameter. Andererseits verletzt dieses Beispiel fast alle funktionalen Programmierparadigmen, die nur drei Codezeilen verletzt werden können.
Die zweite Zweifel ist subtiler. Schauen Sie sich Folgendes an: Nur wenige modische JS -Entwickler sehen sich wie folgt an:
Nun, das ist wirklich gut! Aber ich habe bereits ein vollständiges Verständnis der funktionalen Programmierung und verwende in allen meinen Projekten Unscore.js.
Unscore.js ist eine sehr berühmte und allgegenwärtige JavaScript -Bibliothek. Zum Beispiel: Angenommen, ich habe eine Reihe von Wörtern und brauche die ersten beiden Buchstaben für jedes Wort. Dies ist sehr einfach zu schreiben mit unterstrich.js:
var firsttwoletters = Funktion (Wörter) {return _.map (Wörter, Funktion (Wort) {return _.First (Wort, 2);});};Schauen Sie sich dieses JavaScript -Beispiel an. Ich habe die exquisiten und praktischen Funktionen in der Funktionsformel verwendet: _.Map und _.First. Was denkst du darüber?
Obwohl Funktionen wie Unscore.js und _.Map nützliche funktionale Paradigmen sind, macht es mich immer noch ein wenig schwer zu verstehen, diese Dinge wie dieses zusammenzubringen. Müssen wir das wirklich tun?
Wenn wir darüber nachdenken, wie man "funktionaler" ist, können wir das obige Beispiel wie folgt umschreiben:
// ... ein bisschen MagicVar Firsttwoletters = MAP (First (2));
Wenn Sie sorgfältig darüber nachdenken, hat diese Codezeile den gleichen Effekt wie die oben genannten 5 Zeilen. Viele Wörter sind nur Parameter oder Platzhalter. Die eigentliche Logik besteht darin, die Kartenfunktion, die erste Funktion und konstante 2 auf sinnvolle Weise zu kombinieren.
Einige Leute fragen sich vielleicht: Was ist die Magie in diesem Beispiel? Schließlich ist es ein bisschen wie Prahlerei zu sagen, dass ein Beispiel magisch ist, oder?
Ich habe vor, die nächsten beiden Artikel zu verwenden, um zu erklären, was das obige Beispiel magisch ist. Wenn Sie neugierig sind, können Sie weiter lesen.
Diese Serie von Blogs soll Ihnen helfen, die Schönheit der funktionalen Programmierung auf Ihren JavaScript -Code anzuwenden.
Im nächsten Abschnitt werde ich verschiedene Elemente funktional und nicht funktional in der JavaScript-Sprache erörtern. Mit diesem Wissen können wir langsam ein vollständiges System der funktionalen Programmierung in unserem Gehirn bilden, indem wir diese Elemente miteinander integrieren und ihre Leistung in JavaScript verstehen.