JavaScript -Funktion Kombination: Erstellen Sie mehr auf dem Wartezustandbare
JavaScript -Funktionszusammensetzung ist eine Technik, um mehrere einfache Funktionen in eine einzelne komplexere Funktion zu kombinieren, die Unterfunktionsvorgänge für eine bestimmte Daten in logischer Reihenfolge ausführt. Die Reihenfolge, in der Funktionen angewendet werden, führt zu unterschiedlichen Ergebnissen.
Um den Code für den Warteur zu schreiben, ist es entscheidend, den Rückgabetyp jeder kombinierten Funktion zu verstehen, um sicherzustellen, dass die nächste Funktion ihn korrekt verarbeiten kann. JavaScript verhindert nicht, dass die Kombination Funktionen unangemessener Typen zurückgibt, sodass dieser Teil der Verantwortung auf den Programmierer liegt.
Für diejenigen, die mit dem funktionalen Programmierparadigma nicht vertraut sind, kann die Kombination von Funktionen den Code kompliziert erscheinen lassen. Mit dem Aufkommen der ES2015 -Syntax mit Pfeilfunktionen ist es jedoch möglich, einfache Kombinationsfunktionen in einer Codezeile zu erstellen, ohne dass spezielle Kombinationsmethoden erforderlich sind.
kombinierte Funktionen sollten reine Funktionen sein, was bedeutet, dass jedes Mal, wenn ein bestimmter Wert an eine Funktion übergeben wird, die Funktion das gleiche Ergebnis zurückgeben sollte und die Funktion keine Nebenwirkungen haben sollte, um ihre eigenen externen Werte zu ändern. Dadurch werden sauberer, lesbarer Code erzeugt.
Dieser Artikel wurde von Jeff Mott, Dan Prince und Sebastian Seitz überprüft. Vielen Dank an alle SitePoint -Peer -Rezensenten, die SidePoint -Inhalte für den Besten erhalten haben!
Einer der Vorteile des funktionalen Denkens ist die Fähigkeit, komplexe Funktionen mit kleinen, leicht verständlichen Einzelfunktionen zu erstellen. Aber manchmal erfordert dies, dass das Problem nicht positiv über das Problem nachdenkt, um herauszufinden, wie die eleganteste Lösung erstellt wird. In diesem Artikel werde ich einen Schritt-für-Schritt-Ansatz verfolgen, um die Kombination von Funktionen in JavaScript zu überprüfen und zu demonstrieren, wie er Code erzeugt, der leichter zu verstehen ist und weniger Fehler hat.
verschachtelte Funktionen
Komposition ist eine Technik, mit der Sie zwei oder mehr einfache Funktionen zu einer komplexeren Funktion kombinieren können, die jede Unterfunktion auf alle in logischen Reihenfolge übergebenen Daten ausführt. Um dieses Ergebnis zu erzielen, müssen Sie eine Funktion in einer anderen nisten und die Operationen der externen Funktion zum Ergebnis der inneren Funktion wiederholen, bis das Ergebnis erzeugt wird. Und die Ergebnisse können je nach Reihenfolge variieren, in der die Funktion angewendet wird. Dies kann leicht anhand von Programmierungstechniken demonstriert werden, die wir bereits in JavaScript kennen, indem ein Funktionsaufruf als Parameter an eine andere Funktion bestanden wird:
function addOne(x) { return x + 1; } function timesTwo(x) { return x * 2; } console.log(addOne(timesTwo(3))); //7 console.log(timesTwo(addOne(3))); //8
In diesem Fall definieren wir eine addone () -Funktion, um 1 zu einem Wert hinzuzufügen, und eine timestwo () -Funktion, um einen Wert mit 2 zu multiplizieren. Indem wir die Ergebnisse einer Funktion als Argument an eine andere weitergeben, können wir sehen, wie die Verschachtel eines davon in der anderen unterschiedliche Ergebnisse liefert, auch wenn die Anfangswerte gleich sind. Die innere Funktion wird zuerst ausgeführt und das Ergebnis wird an die äußere Funktion übergeben.
Imperative Kombination
Wenn Sie dieselbe Operationssequenz wiederholen möchten, kann es zweckmäßig sein, eine neue Funktion zu definieren, um die erste und zweite Funktion automatisch anzuwenden. Dies könnte so aussehen:
function addOne(x) { return x + 1; } function timesTwo(x) { return x * 2; } console.log(addOne(timesTwo(3))); //7 console.log(timesTwo(addOne(3))); //8
In diesem Fall kombinieren wir die beiden Funktionen manuell miteinander in einer bestimmten Reihenfolge. Wir erstellen eine neue Funktion, die zuerst den bestandenen Wert der Inhabervariablen zuweist, dann den Wert dieser Variablen durch Ausführung der ersten Funktion, gefolgt von der zweiten Funktion, aktualisiert und schließlich den Wert dieses Halters zurückgibt. (Beachten Sie, dass wir eine Variable namens Holder verwenden, um den Wert, den wir übergeben haben Gute Angewohnheit, Werte als Konstanten zu behandeln. Im Gegenteil der Reihenfolge der Anwendung dieser beiden kleineren Funktionen können wir Folgendes tun:
// ...来自上面的先前函数定义 function addOneTimesTwo(x) { var holder = x; holder = addOne(holder); holder = timesTwo(holder); return holder; } console.log(addOneTimesTwo(3)); //8 console.log(addOneTimesTwo(4)); //10
Natürlich sieht dieser Code sehr wiederholt aus. Unsere beiden neuen kombinierten Funktionen sind nahezu identisch, außer dass die beiden kleineren Funktionen, die sie nennen, unterschiedliche Ausführungsaufträge haben. Wir müssen es vereinfachen (wie uns nicht wiederzuholen). Außerdem ist es nicht sehr funktional, vorübergehende Variablen zu verwenden, die ihren Wert wie diesen ändern, auch wenn er in der kombinatorischen Funktion versteckt ist, die wir erstellen. Fazit: Wir können es besser machen.
Erstellen Sie funktionale Kombinationen
Erstellen wir eine kombinatorische Funktion, die vorhandene Funktionen übernimmt und sie in der gewünschten Reihenfolge kombiniert. Um dies auf konsistente Weise zu tun, ohne jedes Mal mit internen Details umgehen zu müssen, müssen wir die Reihenfolge entscheiden, in der wir die Funktionen als Parameter übergeben möchten. Wir haben zwei Optionen. Die Parameter sind Funktionen, die von links nach rechts oder von rechts nach links ausgeführt werden können. Das heißt, unter Verwendung der neuen Funktion, die wir vorgeschlagen haben, kann das Timestwo (addone ()) komponieren (Timestwo, Addone) zum Lesen von Parametern von rechts nach links oder Addone (Timestwo ()), um Parameter von links nach rechts zu lesen. Der Vorteil der Ausführung von Parametern von links nach rechts besteht darin, dass sie auf die gleiche Weise auf Englisch gelesen werden, was sehr ähnlich ist, wie wir den TimestWoadDone () kombinierter Funktion benannt haben, um zu implizieren, dass eine Multiplikation vor Zugabe stattfinden sollte. Wir alle kennen die Bedeutung einer logischen Benennung für prägnante und leicht zu lesende Code. Der Nachteil der Ausführung von Parametern von links nach rechts besteht darin, dass der zu bedienende Wert vorne platziert werden muss. Wenn Sie den Wert jedoch vor dem Wert vornehmen, sind es weniger bequem, die resultierenden Funktionen mit anderen Funktionen in der Zukunft zu kombinieren. Um den Gedanken hinter dieser Logik gut zu erklären, können Sie nicht über das klassische Video von Brian Lonsdorf hinausgehen. Hey Underscore, du machst es falsch. (Obwohl angemerkt werden sollte, dass Underscore jetzt über eine FP-Option verfügt, die dazu beitragen kann DO ist zuerst alle Konfigurationsdaten übergeben und schließlich den Wert weitergeben, den Sie bedienen möchten. Daher ist es am logischsten, unsere kombinierten Funktionen als das Lesen ihrer Parameter zu definieren und sie von rechts nach links anzuwenden. So können wir eine grundlegende Kombinationsfunktion erstellen, die wie folgt aussieht:
function addOne(x) { return x + 1; } function timesTwo(x) { return x * 2; } console.log(addOne(timesTwo(3))); //7 console.log(timesTwo(addOne(3))); //8
Mit dieser sehr einfachen Kombinationsfunktion können wir unsere beiden vorherigen komplexen Funktionen einfacher erstellen und das gleiche Ergebnis sehen:
// ...来自上面的先前函数定义 function addOneTimesTwo(x) { var holder = x; holder = addOne(holder); holder = timesTwo(holder); return holder; } console.log(addOneTimesTwo(3)); //8 console.log(addOneTimesTwo(4)); //10
Während diese einfache kombinatorische Funktion funktioniert, berücksichtigt sie nicht viele Probleme, die ihre Flexibilität und Anwendbarkeit einschränken. Zum Beispiel möchten wir möglicherweise mehr als zwei Funktionen kombinieren. Darüber hinaus verlieren wir diese Informationen dabei. Wir können diese Probleme lösen, aber es ist nicht notwendig, die Funktionsweise der Kombination zu beherrschen. Anstatt es selbst zu schreiben und eine leistungsstärkere Kombination aus vorhandenen Funktionsbibliotheken wie Ramda zu erben, berücksichtigt sie standardmäßig die Reihenfolge der Parameter Rechts auf links.
Typ ist Ihre Verantwortung
Es ist wichtig, sich daran zu erinnern, dass der Programmierer die Rückgabetyp jeder kombinierten Funktion kennt, damit die nächste Funktion sie korrekt verarbeiten kann. Im Gegensatz zu reinen funktionalen Programmiersprachen, die eine strenge Typüberprüfung durchführen, hindert JavaScript nicht daran, Funktionen zu kombinieren, die die Werte unangemessener Typen zurückgeben. Sie sind nicht darauf beschränkt, Zahlen zu übergeben, aber nicht einmal den gleichen variablen Typ von einer Funktion zur nächsten. Sie sind jedoch dafür verantwortlich, dass die von Ihnen kombinierte Funktion bereit ist, jeden von der vorherigen Funktion zurückgegebenen Wert zu verarbeiten.
Betrachten Sie Ihr Publikum
Denken Sie immer daran, dass andere Ihren Code in Zukunft möglicherweise verwenden oder ändern müssen. Die Verwendung von Kombinationen im herkömmlichen JavaScript -Code kann für diejenigen kompliziert sein, die mit dem funktionalen Programmierparadigma nicht vertraut sind. Das Ziel ist es, einfacher zu sein und Code zu lesen und zu pflegen. Mit dem Aufkommen der ES2015-Syntax ist es jedoch sogar möglich, einfache Kombinationsfunktionen als Einzelzeilenaufrufe zu erstellen, die Pfeilfunktionen verwenden, ohne dass spezielle Kombinationsmethoden erforderlich sind:
function addOne(x) { return x + 1; } function timesTwo(x) { return x * 2; } console.log(addOne(timesTwo(3))); //7 console.log(timesTwo(addOne(3))); //8
Beginnen wir noch heute zu kombinieren
Wie bei allen funktionalen Programmierechniken ist es wichtig, sich daran zu erinnern, dass Ihre kombinierten Funktionen reine Funktionen sein sollten. Kurz gesagt, dies bedeutet, dass jedes Mal, wenn ein bestimmter Wert an eine Funktion übergeben wird, die Funktion das gleiche Ergebnis zurückgeben sollte und die Funktion nicht die Nebenwirkungen haben sollte, ihre eigenen externen Werte zu ändern. Die Kombinationsverschachtung ist sehr bequem, wenn Sie über eine Reihe von verwandten Funktionen verfügen, die Sie auf Ihre Daten anwenden möchten, und Sie können die Komponenten dieser Funktion in wiederverwendbare und leicht zu kombiniertes Funktionen unterteilen. Wie bei allen funktionalen Programmierechniken empfehle ich, die Kombination zu Ihrem vorhandenen Code mit Vorsicht hinzuzufügen, um sich damit vertraut zu machen. Wenn Sie es richtig machen, ist das Ergebnis sauberer, trockener und leichter Code zu lesen. Ist das nicht das, was wir alle wollen?
(Folgendes ist FAQ, die gemäß dem Originaltext angepasst und optimiert wurden, und doppelte Informationen werden vermieden)
häufig gestellte Fragen zur Funktionskombination und zum Warteurwesen
-
Was ist eine Kombination von Funktionen in der Programmierung? Funktionskombination ist das Konzept, einfache Funktionen in komplexere Funktionen zu kombinieren. Sie können komplexe und leistungsstarke Funktionen mit diesen kleinen wiederverwendbaren Funktionen erstellen, genau wie Bausteine. Dies hilft, den Code lesbarer, leichter zu warten und skalierbarer zu machen.
-
Wie fördert die Funktionskombination den Warteabwartungscode? Funktionskombinationen fördern die Wartbarkeit, indem die Verwendung kleiner, wiederverwendbarer Funktionen gefördert wird. Diese Funktionen sind einfacher zu verstehen, zu testen und zu debuggen. Wenn diese kleinen Funktionen kombiniert werden, um komplexere Funktionen zu erzeugen, ist es einfacher, Probleme zu bestimmen und zu beheben, die möglicherweise auftreten. Dieser modulare Ansatz erleichtert auch die Aktualisierung oder Änderung bestimmter Teile des Codes, ohne das gesamte System zu beeinflussen.
-
Was sind die besten Verfahren zum Schreiben von Wartungscode? Wartungsabteilung beinhaltet eine Reihe von Best Practices, darunter: Funktionen von Funktionen und Konzentration auf eine einzelne Aufgabe; Struktur.
-
Wie besteht die Beziehung zwischen Funktionskombination und funktionaler Programmierung? Funktionskombination ist ein grundlegendes Konzept in der funktionalen Programmierung. Die Funktionsprogrammierung ist ein Beispiel für die Behandlung von Berechnungen als Bewertung mathematischer Funktionen und zur Vermeidung von Änderungszuständen und variablen Daten. In diesem Paradigma spielen Funktionskombinationen eine entscheidende Rolle beim Aufbau komplexerer Funktionen aus einfacheren Funktionen, wodurch die Wiederverwendbarkeit und Wartbarkeit des Codes verbessert wird.
-
Was sind die Herausforderungen bei der Implementierung von Funktionskombinationen? Funktionskombinationen haben viele Vorteile, können aber auch Herausforderungen mit sich bringen. Eine Herausforderung besteht darin, dass dies, wenn sie nicht ordnungsgemäß verwaltet wird, zu schwer zu lesenem Code führen kann, insbesondere bei der Kombination mehrerer Funktionen. Umgang mit Fehlern und Ausnahmen in einer Kette kombinierter Funktionen kann ebenfalls schwierig sein. Diese Herausforderungen können jedoch durch gute Codierungspraktiken und die korrekte Verwendung von Funktionskombinationen gemindert werden.
-
Wie verbessert man Code -Tests mit Funktionskombinationen? Funktionskombinationen können Codetests einfacher und effizienter machen. Da eine kombinierte Funktion aus kleineren, unabhängigen Funktionen besteht, können Sie jede kleine Funktion separat testen. Dies erleichtert die Isolierung und Behebung von Fehler. Es erleichtert auch die Praxis von Unit -Tests, wobei jeder Teil der Software einzeln getestet wird, um sicherzustellen, dass er ordnungsgemäß funktioniert.
Das obige ist der detaillierte Inhalt vonFunktionszusammensetzung: Bausteine für den Wartungscode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Ich habe eine funktionale SaaS-Anwendung mit mehreren Mandanten (eine EdTech-App) mit Ihrem täglichen Tech-Tool erstellt und Sie können dasselbe tun. Was ist eine SaaS-Anwendung mit mehreren Mietern? Mit Multi-Tenant-SaaS-Anwendungen können Sie mehrere Kunden aus einem Sing bedienen

Dieser Artikel zeigt die Frontend -Integration mit einem Backend, das durch die Genehmigung gesichert ist und eine funktionale edtech SaaS -Anwendung unter Verwendung von Next.js. erstellt. Die Frontend erfasst Benutzerberechtigungen zur Steuerung der UI-Sichtbarkeit und stellt sicher, dass API-Anfragen die Rollenbasis einhalten

JavaScript ist die Kernsprache der modernen Webentwicklung und wird für seine Vielfalt und Flexibilität häufig verwendet. 1) Front-End-Entwicklung: Erstellen Sie dynamische Webseiten und einseitige Anwendungen durch DOM-Operationen und moderne Rahmenbedingungen (wie React, Vue.js, Angular). 2) Serverseitige Entwicklung: Node.js verwendet ein nicht blockierendes E/A-Modell, um hohe Parallelitäts- und Echtzeitanwendungen zu verarbeiten. 3) Entwicklung von Mobil- und Desktop-Anwendungen: Die plattformübergreifende Entwicklung wird durch reaktnative und elektronen zur Verbesserung der Entwicklungseffizienz realisiert.

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Python eignet sich besser für Datenwissenschaft und maschinelles Lernen, während JavaScript besser für die Entwicklung von Front-End- und Vollstapel geeignet ist. 1. Python ist bekannt für seine prägnante Syntax- und Rich -Bibliotheks -Ökosystems und ist für die Datenanalyse und die Webentwicklung geeignet. 2. JavaScript ist der Kern der Front-End-Entwicklung. Node.js unterstützt die serverseitige Programmierung und eignet sich für die Entwicklung der Vollstapel.

JavaScript erfordert keine Installation, da es bereits in moderne Browser integriert ist. Sie benötigen nur einen Texteditor und einen Browser, um loszulegen. 1) Führen Sie sie in der Browser -Umgebung durch, indem Sie die HTML -Datei durch Tags einbetten. 2) Führen Sie die JavaScript -Datei nach dem Herunterladen und Installieren von node.js nach dem Herunterladen und Installieren der Befehlszeile aus.

So senden Sie im Voraus Aufgabenbenachrichtigungen in Quartz Wenn der Quartz -Timer eine Aufgabe plant, wird die Ausführungszeit der Aufgabe durch den Cron -Ausdruck festgelegt. Jetzt...


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

Dreamweaver Mac
Visuelle Webentwicklungstools

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung