function add () {
let res = parseInt(Array.from(arguments));
function ret () {
const a = Array.from(arguments);
res = parseInt(res) + parseInt(a);
return ret;
}
return ret;
}
Чтобы sum(1), а также sum(1)(2) можно было вызвать новыми скобками – результатом sum должна быть функция.
Но эта функция также должна уметь превращаться в число. Для этого нужно дать ей соответствующий valueOf. А если мы хотим, чтобы и в строковом контексте она вела себя так же – то toString.