замыкание java script

Написать функцию, принимающую один аргумент. Если его не передать – то по умолчанию этот аргумент равен – 0 При первом вызове, она его запоминает, при последующих переданный аргумент суммируется с результатом предыдущего вызова. Как это будет выглядеть:

const sum = sumFunction();
sum(3) ; //3
sum(5); // 8
sum(20); // 28

Важно: функция должна возвращать значение, а не просто выводить его в console.log. Мое решение задачи в коде ниже.

const sum = function sumFunction(x) {
    const add = function (y) {
     return x + y 
    }
    return add
  }
    const addThree = sum(3);
    const addFive = sum(5);
    const addTwenty = sum(20);
  
  console.log(addThree(0));//3
  console.log(addFive(3)); //8
  console.log(addTwenty(8)); ///28

Но это не совсем корректно, так как в замыкании должна быть какая-то переменная, которая будет сохранять результат предварительного вызова функции. Как это можно реализовать?


Ответы (0 шт):