JSFiddle - React, Tailwind, and code Playground

by Vladymyr Shevchuk

JavaScript

function sum2 (n) {
  if (sum2.accum) {
    sum2.accum += n;
  } else {
    sum2.accum = n;
  }

  sum2[Symbol.toPrimitive] = () => {
    const result = sum2.accum;
    //sum2.accum = 0; // Very important to reset value

    return result;
  };

  return sum2;
}

console.error(+sum2(1)(10)(0)("10"));
console.error(+sum2(1)(10)(20));