Willkommen und in dieser Lektion, Wir werden über JavaScript-Funktionen höherer Ordnung sprechen. Und das, worauf das alles aufgebaut ist, ist die Idee, dass JavaScript Funktionen als Objekte behandelt. So zum Beispiel an Orten, zum Beispiel wo Sie es gewohnt sind, Variablen zu verwenden, Sie können auch Funktionen verwenden. Das heißt, wir können eine Funktion als Parameter übergeben zu einem anderen und erhalten eine Funktion als Rückgabewert. Funktionen sind also erstklassige Mitglieder von JavaScript. So können wir diese in Variablen speichern, auch wenn wir wollen. Also auch Funktionen höherer Ordnung Nehmen Sie eine Funktion als Argument oder geben Sie eine Funktion zurück. Und mit dieser Seite werden wir arbeiten und wir werden dies ausfüllen, wenn wir gehen. Die gute Nachricht ist: Sie haben wahrscheinlich schon ein bisschen davon gemacht. Zum Beispiel, Mal sehen, ich habe hier oben ein paar meiner Knöpfe, funcAsArg. Funktioniere also als Argument. Wenn ich dafür einen Event-Handler erstellen möchte, Ich werde die on-Funktion von jQuery verwenden und der Parameter, den es braucht, ist der Name des Ereignisses und raten Sie mal, eine Funktion. Es könnte also der Name einer Funktion sein das ist schon da draußen, Es könnte eine anonyme sein, die wir erstellt haben Es könnte die Pfeilfunktion sein, die auch anonym ist. Wenn du das jemals getan hast und ich vermute irgendwann in JavaScript, Du hast es irgendwie gemacht. Erraten Sie, was? Sie verwenden bereits Funktionen höherer Ordnung, nicht schlecht. Beim Klicken zeigen wir HTML nur etwas. An diesem Code ist hier nichts Wunderbares aber irgendwie wollte darauf hinweisen Was hast du vielleicht schon oft benutzt? aber vielleicht wusste ich nie, wofür du es benutzt hast oder warum es funktioniert hat. Schauen wir uns nun eine Funktion an, die eine Funktion zurückgibt und wie wir das strukturieren könnten. Nehmen wir also an, ich schalte die Schilder einer Nummer ein. Das wäre eine relativ einfache Operation natürlich zu tun, Aber wir erstellen dieses Beispiel damit wir Funktionen höherer Ordnung zeigen können. Also vielleicht anstatt nur eine Variable zurückzugeben, Wir werden eine Funktion zurückgeben. Und wir werden diesen ursprünglichen Wert annehmen und damit etwas anfangen. Ja, dies könnte eine eigenständige Funktion sein, aber auch hier Wir demonstrieren hier nur die Funktionalität. Wenn ich diese Funktion aufrufe, bekomme ich eine andere Funktion zurück. Wie schaffen wir das? Nun, ich werde sagen, überdenken Sie es nicht. Wir sind an Funktionen gewöhnt, die eine Variable zurückgeben und wir speichern diese Daten einfach irgendwo. Nun, das ist eine Funktion das wird eine andere Funktion zurückgeben Die Idee ist, dass wir etwas damit anfangen können. Nehmen wir zum Beispiel an: Wir werden zwei verschiedene Arten machen, wie wir es hier nennen können. Es gibt Schalterzeichen und das Richtungsargument nach Bedarf. Also werde ich die Funktion speichern, die zurückgegeben wird in forMomAndDad und in forTheBooks. Ab sofort habe ich überhaupt nichts mehr Wo die Magie passiert, ist, wenn ich diese Variablen nehme und ich gebe es weiter, was es braucht. Dies ist also die Funktion, die zurückgegeben wird diese interne Funktion, Hinweis hat einen ursprünglichen Wert param. Das ist es, was ich an dieser Stelle tatsächlich weitergebe. Beachten Sie jetzt hier, meine Richtung ist positiv für Mama und Papa lass es auf dem, forTheBooks. Nicht, dass wir etwas Unehrliches tun, aber wir wollen, dass Mama und Papa denken, dass es uns gut geht. Wie wär es damit? Testen wir diese Funktion als Rückgabewert. Mama und Papa sehen 500, Buchhaltung sieht die reale Sache. Lüge dein Konto nicht an, keine gute Idee. Und lassen Sie uns hier nachsehen und wir werden etwas eingeben, Na, bitte. Und wir wissen, dass dieser frühere auch funktioniert hat. Wir haben also eine Funktion, die einen Wert annimmt Funktion, die eine andere Funktion zurückgibt dass wir zu einem späteren Zeitpunkt anrufen. Wir können also auch Javascript-Funktionen verwenden das sind schon da draußen, die höherer Ordnung sind und Filter ist einer von denen. Ich werde hier einen oder mehrere Buchstaben eingeben. Und wir werden herausfinden, welche der Optionen in der Box enthalten sind das passt dort tatsächlich zusammen. Lassen Sie uns dies zuerst einrichten und ich werde einfach jede meiner Optionen in die Box nehmen und ich werde das Array einer Stadt erstellen und dann schieben Sie einfach den ganzen Text davon in das Array der Stadt, das wir uns später ansehen werden. Das wird der richtige Ort sein wo wir den Buchstaben oder die Buchstaben eingeben und dann wird unsere Filterfunktion so aussehen. Das ist also nur Filter und es ist eine höhere Ordnung weil es eine Funktion als Argument nimmt. In diesem Fall handelt es sich um eine anonyme Funktion. Wir schauen uns dieses Wort an, Ich brauche die Konsole, die sich dort anmeldet, nicht wirklich aber wir werden sehen, ob der Charakter passt, denn wenn wir einen Wert zurückbekommen, der größer als Null ist, dann wissen wir, dass dieser Charakter gefunden wurde in dieser Zeichenfolge irgendwo und dann zeigen wir es einfach auf der Seite an. Wir zeigen also nur, wie viele Spiele es gab und an die Seite anhängen. Das große an diesem ist, dass ich Filter benutze. Es ist eine Funktion höherer Ordnung weil es diese Funktion als Argument nimmt. Sagen wir also, wie wäre es mit dem Buchstaben a das scheint in einigen von diesen zu erscheinen. Los geht's, wir haben acht Spiele. Wie wäre es mit "at" als Phrase? Nur das eine Spiel. Versuchen Sie es noch einmal, nur das eine Match dort. Sie haben also einige Funktionen die Sie verwenden können, um mit Arrays zu arbeiten, Filter, einer von ihnen zu sein dass wir jedes Mitglied eines Arrays durchgehen und eine bestimmte Funktion gegeben, Sagen Sie, ob es Teil dieser Booleschen Funktion ist dass Sie gebeten haben, zuerst zu schauen. Wir können auch Reduzieren Das ist eine andere Funktion höherer Ordnung und ich werde wieder die Optionen haben. Mit diesem, was ich tun werde Nehmen Sie alle Längen der einzelnen Optionen in der Box und Reduzieren übernimmt eine Funktion, die mir ein Ergebnis zurückgibt. Das Array wird also auf einen Wert reduziert und Sie können dort tun, was Sie wollen. Ich werde insgesamt und aktuell bestehen. Und das wird nur eine laufende Summe sein das wird mir die Länge geben aller Zeichen in der Box. Reduzieren nimmt also wieder eine Funktion als Argument. Der zweite ist genau der Standard, wenn er gestartet wird. Ich sollte also in der Lage sein, all dies zusammenzufassen und es sieht so aus, als hätte ich dort eine zu viele Zahnspange. Also lasst uns das beheben. Na, bitte. Die Gesamtzahl der Zeichen und aller Optionselemente beträgt 78. Sie können sie selbst hochzählen und sehen aber ich denke es funktioniert. Also in dieser Lektion, Wir haben uns eine Einführung angesehen zur Verwendung von Funktionen höherer Ordnung in JavaScript. Und danke fürs Zuschauen. In unserer nächsten Lektion werden wir über JavaScript-Funktionen sprechen das nennt man Iteratoren und Generatoren.