Schreiben einer gewöhnlichen JavaScript-Funktion, die beliebig oft aufgerufen werden kann und beim letzten Funktionsaufruf einen Wert zurückgibt

Ich arbeite zurzeit an einem Programmierproblem in meiner persönlichen Zeit, bei dem gefragt wird, ob ich eine JavaScript-Funktion erstellen möchte, die auf diese Weise aufgerufen werden kann.

add(1) // 1
add(1)(2) // 3
add(1)(2)(3); // 6
add(1)(2)(3)(4); // 10
add(1)(2)(3)(4)(5); // 15

Was ich Probleme habe herauszufinden, ist, wie es einen Wert beim allerletzten Aufruf zurückgeben kann.

Zum Beispiel, um füradd(1)(2) zur Arbeit, dannadd(1) muss eine Funktion zurückgeben, aber gemäß den Anweisungenadd(1) Wenn es von selbst aufgerufen wird, wird @ zurückgegebe1.

Ich gehe davon aus, dass Sie dies überwinden können, indem Sie herausfinden, wie oft nacheinander dasadd function wird aufgerufen, aber ich kann mir keine Möglichkeit vorstellen, dies zu erreichen. Hat jemand irgendwelche Hinweise, die mir in die richtige Richtung weisen können?

Ich habe diese beiden Artikel gelesen 1, 2) über die Funktion currying und ich verstehe sie, aber ich bin nicht sicher, wie ich currying mache, wenn ich mit einer variablen Anzahl von Argumenten umgehe.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage