Heim >Web-Frontend >js-Tutorial >Currying in JavaScript beherrschen: Verbessern Sie die Wiederverwendbarkeit und Flexibilität von Code
Currying ist eine in JavaScript verwendete funktionale Programmiertechnik, bei der eine Funktion, die mehrere Argumente akzeptiert, in eine Folge von Funktionen umgewandelt wird, von denen jede ein einzelnes Argument akzeptiert. Dadurch können Sie Argumente teilweise anwenden und so flexibler mit Funktionen arbeiten.
Currying ist der Prozess der Umwandlung einer Funktion, die mehrere Argumente annimmt, in eine Reihe von Funktionen, die jeweils ein einzelnes Argument annehmen. Die erste Funktion übernimmt das erste Argument, gibt eine neue Funktion zurück, die das zweite Argument übernimmt, und so weiter, bis alle Argumente bereitgestellt wurden.
Ein einfaches Beispiel für Currying lässt sich wie folgt veranschaulichen:
function add(a) { return function(b) { return a + b; }; } const addFive = add(5); // The first function is called with 5 console.log(addFive(3)); // Output: 8 (5 + 3)
Im Beispiel oben:
Currying ist am nützlichsten, wenn Sie eine Funktion haben, die mehrere Argumente akzeptiert, und diese in kleinere, wiederverwendbare Teile zerlegen möchten. Hier ist ein Beispiel für Currying mit mehreren Argumenten:
function multiply(a) { return function(b) { return function(c) { return a * b * c; }; }; } const multiplyBy2 = multiply(2); // First argument is fixed as 2 const multiplyBy2And3 = multiplyBy2(3); // Second argument is fixed as 3 console.log(multiplyBy2And3(4)); // Output: 24 (2 * 3 * 4)
In diesem Fall:
Sie können Currying manuell implementieren, indem Sie eine Funktion erstellen, die eine Reihe von Argumenten entgegennimmt und eine Funktion zurückgibt, die diese Argumente akkumuliert.
function curry(fn) { return function curried(...args) { if (args.length >= fn.length) { return fn(...args); } else { return function(...newArgs) { return curried(...args, ...newArgs); }; } }; } // Example function function sum(a, b, c) { return a + b + c; } const curriedSum = curry(sum); console.log(curriedSum(1)(2)(3)); // Output: 6
Im Beispiel oben:
Currying ermöglicht es Ihnen, mehr wiederverwendbare und zusammensetzbare Funktionen zu erstellen. Es kann in einigen Szenarien den Code vereinfachen und die Arbeit mit Funktionen erleichtern, die gemeinsame Argumente haben.
Partielle Funktionsanwendung: Currying ermöglicht die teilweise Anwendung von Funktionen, was bedeutet, dass Sie spezielle Funktionen erstellen können, indem Sie einige Argumente korrigieren und andere später bereitstellen lassen.
Funktionskomposition: Sie können Curry-Funktionen kombinieren, um komplexere Operationen zu erstellen, ohne den Code wiederholen zu müssen.
Verbesserte Lesbarkeit: Currying macht deutlich, welche Argumente eine Funktion benötigt, und ermöglicht saubereren, prägnanteren Code.
function add(a) { return function(b) { return a + b; }; } const addFive = add(5); // The first function is called with 5 console.log(addFive(3)); // Output: 8 (5 + 3)
Hier ist multiplyBy10 eine spezielle Funktion, deren erstes Argument auf 10 festgelegt ist. Dies kann an mehreren Stellen wiederverwendet werden.
Angenommen, Sie stellen eine Reihe von API-Anfragen mit gemeinsamen Parametern. Currying kann verwendet werden, um diesen Prozess zu vereinfachen.
function multiply(a) { return function(b) { return function(c) { return a * b * c; }; }; } const multiplyBy2 = multiply(2); // First argument is fixed as 2 const multiplyBy2And3 = multiplyBy2(3); // Second argument is fixed as 3 console.log(multiplyBy2And3(4)); // Output: 24 (2 * 3 * 4)
Während Currying eine Funktion in eine Reihe unärer Funktionen umwandelt, ist Teilanwendung der Prozess, bei dem einige Argumente einer Funktion korrigiert und eine neue Funktion zurückgegeben werden, die die verbleibenden Argumente akzeptiert. Currying ist eine Möglichkeit, eine teilweise Anwendung zu erreichen.
function curry(fn) { return function curried(...args) { if (args.length >= fn.length) { return fn(...args); } else { return function(...newArgs) { return curried(...args, ...newArgs); }; } }; } // Example function function sum(a, b, c) { return a + b + c; } const curriedSum = curry(sum); console.log(curriedSum(1)(2)(3)); // Output: 6
Hier haben wir teilweise „Hallo“ mit bind() auf die Begrüßungsfunktion angewendet.
Hallo, ich bin Abhay Singh Kathayat!
Ich bin ein Full-Stack-Entwickler mit Fachwissen sowohl in Front-End- als auch in Back-End-Technologien. Ich arbeite mit einer Vielzahl von Programmiersprachen und Frameworks, um effiziente, skalierbare und benutzerfreundliche Anwendungen zu erstellen.
Sie können mich gerne unter meiner geschäftlichen E-Mail-Adresse erreichen: kaashshorts28@gmail.com.
Das obige ist der detaillierte Inhalt vonCurrying in JavaScript beherrschen: Verbessern Sie die Wiederverwendbarkeit und Flexibilität von Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!