JSFiddle - React, Tailwind, and code Playground

by Vladymyr Shevchuk

JavaScript

/**
 * Sum
 * @param {number} n index
 * @returns {number}
 */
function sum (n) {

  /* const innerSum = () => {} */;
  
  function innerSum (value) {
    const number = parseInt(n, 10);
    
    if (innerSum.accum) {
      innerSum.accum += number;
    } else {
      innerSum.accum = number;
    }
    
    return innerSum;
  }

 

  innerSum[Symbol.toPrimitive] = () => {
    return innerSum.accum;
  };

  return innerSum;
}

console.error(+sum(1)(2));
console.error(+sum(1)(3));