Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Удаленная работа для IT-специалистов
sum(1,2,3) -> 6 sum(1)(2)(3) -> 6 sum(1,2)(3) -> 6
function sum(...values) { const s = values.reduce((acc, n) => acc + n, 0); const f = sum.bind(null, s); f.valueOf = () => s; return f; }
const sum = (...x) => Object.assign(function f(...y) { return sum(...y, +f); }, {valueOf: () => x.reduce((a, c) => a + c, 0)});