문제 출처 : BFE.dev JavaScript Coding Questions 23. create a sum()
다음을 가능하게 하는 sum()을 만드세요.
const sum1 = sum(1)
sum1(2) == 3 // true
sum1(3) == 4 // true
sum(1)(2)(3) == 6 // true
sum(5)(-1)(2) == 6 // true
/**
* @param {number} num
*/
function sum(num) {
// 내부 함수를 정의합니다.
const innerSum = function (acc) {
// 현재 숫자에 추가된 값을 더해 재귀적으로 sum 함수를 호출합니다.
return sum(num + acc);
};
// 함수를 값으로 평가할 때 현재 숫자를 반환합니다.
innerSum.valueOf = function () {
return num;
};
return innerSum;
}