Heim >Web-Frontend >js-Tutorial >Funktionen höherer Ordnung und Currying in JavaScript

Funktionen höherer Ordnung und Currying in JavaScript

WBOY
WBOYnach vorne
2023-09-04 17:57:07796Durchsuche

JavaScript 中的高阶函数和柯里化

Funktionen sind in jeder Programmiersprache sehr nützliche Features. Entwickler können möglicherweise jede Programmiersprache finden, die diese Funktion nicht enthält. Wenn wir außerdem mit dem Erlernen einer Programmiersprache beginnen, lernen wir auf jeden Fall Funktionen kennen, d. h. Codeblöcke, die die Wiederverwendbarkeit des Codes ermöglichen.

In diesem Tutorial lernen wir etwas über Funktionen höherer Ordnung und Currying.

Funktionen höherer Ordnung

Bevor wir mit dem Einarbeiten in JavaScript beginnen, wollen wir zunächst die Funktionen höherer Ordnung verstehen. Die einfache Definition einer Funktion höherer Ordnung lautet: eine Funktion, die eine andere Funktion als Parameter annimmt oder eine Funktion zurückgibt. Haben Sie jemals die Methode sort() in JavaScript oder einer anderen Programmiersprache wie C++ oder Python verwendet? Wenn ja, haben Sie möglicherweise eine Rückruffunktion als Argument an die Methode

sort()

übergeben, um das Array basierend auf einem bestimmten Kontext zu sortieren. Daher können wir sagen, dass die Methode

sort()

eine Funktion höherer Ordnung ist. Grammatik

Benutzer können Funktionen höherer Ordnung gemäß der folgenden Syntax verwenden.

function sortArray(ele1, ele2) {
   
   // function body
}
array.sort(sortArray);

In der obigen Syntax ist

sort()

eine Funktion höherer Ordnung, da wir die Funktion sortArray() als Parameter übergeben haben. Beispiel

Im folgenden Beispiel haben wir ein Zahlenarray erstellt, das unterschiedliche numerische Werte enthält. Danach verwenden wir die Methode

filter()

, um alle Elemente im Array herauszufiltern, die durch 2 teilbar sind. Benutzer können beobachten, dass wir die Funktion

filter_func()

als Parameter der Methode filter() übergeben haben. Daher können wir sagen, dass die Methode filter() eine Funktion höherer Ordnung ist.

<html>
<body>
   <h2>Higher-order functions using the filter() method.</h2> 
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      let array = [10, 30, 23, 32, 32, 32, 32, 45, 5, 6, 878989, 34, 23];
      
      // creating the function to filter values
      function filter_func(element) {
         return element % 2 == 0;
      }
      
      // higher-order function
      let divisibleBy2 = array.filter(filter_func);
      output.innerHTML += "The filtered values are " + divisibleBy2;
   </script>
</body>
</html>
Beispiel

In diesem Beispiel haben wir ein Array von Zeichenfolgen erstellt. Danach schreiben wir den ersten Buchstaben aller Array-Werte mit der Methode

map()

groß. Wir übergeben die Callback-Pfeilfunktion als Argument an die Map-Methode, die eine Zeichenfolge zurückgibt, nachdem das erste Zeichen großgeschrieben wurde. Wir schreiben das erste Zeichen jedes Array-Strings mit den Methoden

substr()

und toUpperCase() groß.

<html>
<body>
   <h2>Higher-order functions using the map() method</h2>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      let array = ["hi", "users", "welcome", "on", "tutorialspoint!"];
      output.innerHTML += "Original Array: <br>" + array + "<br>";
      
      // higher-order function
      let results = array.map((string) => {
         
         // creating the first character capitalize
         return string.substr(0, 1).toUpperCase() + string.substr(1);
      });
      output.innerHTML += "<br>The array after capitalizing the first character: <br>" + results;
   </script>
</body>
</html>
Jetzt können Benutzer die Vorteile der Verwendung von Funktionen höherer Ordnung kennenlernen. Beispielsweise wurde die Methode

filter()

in der Array-Bibliothek von JavaScript implementiert, die es Benutzern ermöglicht, die Filterlogik zu überschreiben, indem sie eine benutzerdefinierte Rückruffunktion als Parameter übergeben. Currying in JavaScript

Currying ähnelt Funktionen höherer Ordnung, es gibt Funktionen zurück. Curry-Funktionen akzeptieren mehrere Parameter, und Benutzer können die Parameterwerte an verschachtelte Funktionen übergeben.

Die letzte verschachtelte Funktion der Curry-Funktion gibt die endgültige Ausgabe zurück.

Grammatik

Benutzer können Curry-Funktionen gemäß der folgenden Syntax schreiben.

function addition(num1) {
   return function (num2) {
      return num1 + num2;
   };
}
addition(10)(20);

Wir geben diese Funktion von der Funktion

addition()

in der obigen Syntax zurück. Darüber hinaus können Benutzer auch beobachten, wie wir die Funktion addition() aufrufen, indem wir mehrere Parameter übergeben. Beispiel

Im folgenden Beispiel erstellen wir eine Curry-Funktion namens

addition()

. Die Additionsfunktion hat nur einen Parameter. Außerdem wird eine verschachtelte Funktion zurückgegeben, die ebenfalls ein einzelnes Argument akzeptiert. Die verschachtelte Funktion gibt die Summe der Argumente num1 und num2 zurück.

<html>
<body>
   <h2>Curried functions</h2>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      
      // curried function, which returns the function
      function addition(num1) {
         return function (num2) {
            return num1 + num2;
         };
      }
      output.innerHTML += "After calling the curried function, the result is " + addition(10)(20);
   </script>
</body>
</html>
Benutzer haben in diesem Tutorial mehr über Funktionen

höherer Ordnung

und Curry-Funktionen erfahren. Funktionen höherer Ordnung und Curry haben viele Verwendungsmöglichkeiten, von denen wir einige anhand von drei Beispielen gesehen haben.

Das obige ist der detaillierte Inhalt vonFunktionen höherer Ordnung und Currying in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen