Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie rufe ich in JavaScript eine Funktion auf, die eine andere Funktion zurückgibt?

WBOY
Freigeben: 2023-09-02 21:21:02
nach vorne
1144 Leute haben es durchsucht

如何在 JavaScript 中调用一个返回另一个函数的函数?

Wir rufen die Funktion auf, indem wir den Funktionsnamen in Anführungszeichen setzen und dahinter Klammern hinzufügen. Wenn Die von uns aufgerufene Funktion gibt eine andere Funktion zurück (in unserem Fall ist dies der Fall) und wir müssen sie zuweisen in eine Variable umwandeln oder sofort aufrufen. Wir müssen in Zukunft dafür sorgen, dass wir Verstehen Sie das Verhalten der zurückgegebenen Funktion und wie Sie sie in unserem Code verwenden. Dies wird als Funktionscurrying bezeichnet.

Funktionscurry

  • Function Currying ist eine Technik in der funktionalen Programmierung, bei der eine Funktion in eine Reihe von Funktionen umgewandelt wird, von denen jede einen Parameter akzeptiert.

  • Dies ermöglicht die teilweise Anwendung der Argumente einer Funktion und vereinfacht die Funktionskomposition.

  • Es ist nach dem Logiker Haskell Curry benannt.

  • In JavaScript kann die Funktion „curry“ verwendet werden, um eine bestimmte Funktion zu curryen.

Methode

In JavaScript können Sie eine Funktion aufrufen, die eine andere Funktion zurückgibt, indem Sie zunächst die zurückgegebene Funktion einer Variablen zuweisen und sie dann mit dem Variablennamen gefolgt von Klammern aufrufen.

Beispiel

let outerFunction = function() {
   return function() {
      console.log("Inner function");
   }
}
let innerFunction = outerFunction();
innerFunction(); // "Inner function"
Nach dem Login kopieren

Ausgabe

Inner function
Nach dem Login kopieren
Nach dem Login kopieren

Sie können die innere Funktion auch direkt nach dem Aufruf der äußeren Funktion aufrufen, indem Sie im äußeren Funktionsaufruf Klammern hinzufügen, wie unten gezeigt -

outerFunction()(); // "Inner function"
Nach dem Login kopieren
Nach dem Login kopieren

Sie können anstelle von Funktionen auch Pfeilfunktionen verwenden -

let outerFunction = () => () => console.log("Inner function");
let innerFunction = outerFunction();
innerFunction(); // "Inner function"
Nach dem Login kopieren

Ausgabe

Inner function
Nach dem Login kopieren
Nach dem Login kopieren

oder

outerFunction()(); // "Inner function"
Nach dem Login kopieren
Nach dem Login kopieren

Beide führen zum gleichen Ergebnis

Endgültiger Code

Dies ist ein Beispiel für den Aufruf einer Funktion, die eine andere Funktion in JavaScript zurückgibt -

// A function that returns another function
function createMultiplier(x) {
   return function(y) {
      return x * y;
   };
}

// Call the createMultiplier function and assign the returned function to a variable
let double = createMultiplier(2);

// Use the returned function to perform a calculation
console.log(double(5)); // Output: 10
Nach dem Login kopieren

Anleitung

    Die Funktion
  • createMultiplier akzeptiert einen einzelnen Parameter x und gibt eine neue Funktion zurück. Diese Rückgabefunktion akzeptiert ein einzelnes Argument y und gibt das Produkt aus x und y zurück.

  • Wir rufen die Funktion „createMultiplier“ auf, übergeben den Wert 2 als Argument und die Funktion weist die zurückgegebene Funktion der Variablen „double“ zu.

  • Jetzt ist die Double-Variable eine Funktion, die das Argument y akzeptiert und x*y zurückgibt (wobei x 2 ist).

  • Wir rufen double(5) auf, es wird 2*5 = 10 zurückgegeben.

In diesem Beispiel ist createMultiplier eine Funktion höherer Ordnung, da sie eine Funktion zurückgibt. Die zurückgegebene Funktion wird als Abschluss bezeichnet, da sie sich den Wert von x aus dem Bereich der äußeren Funktion merkt.

Ausgabe

10
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie rufe ich in JavaScript eine Funktion auf, die eine andere Funktion zurückgibt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage