Heim > Artikel > Web-Frontend > Wie kann ich eine Funktion in JavaScript auf Tiefe n rekursieren?
In JavaScript gilt eine Funktion als „curried“, wenn sie einen oder mehrere Parameter annimmt und eine neue Funktion zurückgibt, die die übrigen Parameter annimmt. Currying ist eine leistungsstarke Technik, mit der aus vorhandenen Funktionen neue Funktionen oder „Curry“-Funktionen der Tiefe n erstellt werden können. Warum müssen wir Funktionen dereferenzieren?
möchten. Zum Beispiel möchten Sie vielleicht -
-
<!doctype html> <html> <head> <title>Examples</title> </head> <body> <p>uncurry up to depth 2 using Function apply() method</p> <div id="result"></div> <script> function add(a, b) { return a + b; } function curriedAdd(a) { return function(b) { return a + b; } } // Uncurry the "curriedAdd" function up to depth 2: document.getElementById("result").innerHTML = curriedAdd.apply(null, [1]).apply(null, [2]); // 3 </script> </body> </html>Verwenden Sie die Methode „Function.prototype.call“ Die Methode "Function.prototype.call" kann auch verwendet werden, um eine Funktion bis zur Tiefe n aufzuheben. Die „call“-Methode ähnelt der „apply“-Methode, aber Sie übergeben den
“call“ i>-Methode. Zum Beispiel -
<!doctype html> <html> <head> <title>Examples</title> </head> <body> <p> uncurry up to depth 2 using Function call() method</p> <div id="result"></div> <script> function add(a, b) { return a + b; } function curriedAdd(a) { return function(b) { return parseInt(a) + parseInt(b); } } // Uncurry the "curriedAdd" function up to depth 2: document.getElementById("result").innerHTML = curriedAdd.call(null, [1]).call(null, [2]); // 3 </script> </body> </html>Im obigen Beispiel haben wir die Methode "call" verwendet, um die Funktion "curriedAdd" zu curryen. Wie Sie sehen können, ist die Methode "call" etwas ausführlicher als die Methode
"apply", hat aber den gleichen Effekt. Welche Vorteile bietet die Verwendung der Methode „Function.prototype.apply“? Die Verwendung der Methode „Function.prototype.apply“ zum Dereferenzieren einer Funktion hat mehrere Vorteile -
Die Methode „Apply“ ist schneller als die Methode „Call“. Die Methode „Apply“ wird weiter unterstützt als die Methode „Call“.Zusammenfassend ist Currying eine leistungsstarke Technik, die verwendet werden kann, um neue Funktionen aus vorhandenen Funktionen zu erstellen oder Funktionen der Tiefe n zu „curryen“.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Funktion in JavaScript auf Tiefe n rekursieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!