Цитата:
Спасибо но в итоге, const number5 = number(5); const number10 = number5(2); console.log(number10(3)) // Выведет функцию, а не 30 console.log(number10(3).valueOf()) // Выведет 30 Можно ли как то это сделать без дополнительного метода valueOf. |
Цитата:
если у тебя функция, то чем её не обвешивай, а всё равно она останется функцией, а не числом. и console.log напишет о ней всю правду. вероятно, эту проблему можно решить через Proxy, пока точно сказать не могу.. |
Цитата:
Все равно спасибо большое ! очень помог! |
Alexandroppolus,
вроде одна из вложенных функций лишняя function number(num) { const numberN = function(n1) { return number(num * n1); } numberN.valueOf = function() { return num; }; numberN.toString = function() { return String(num); }; return numberN; } const number5 = number(5); const number10 = number5(2); const number30 = number10(3); const number15 = number5(3); // другая ветка умножения alert([number5, number10, number30, number15, number10 + number15].join('\n')); |
destus,
Точно, с иннером я упоролся. Это фиаско. |
Можно ещё then метод добавить, чтоб делать
const num = await number(1)(2)(3); И toJSON чтоб в JSON.stringify работало. :) |
Часовой пояс GMT +3, время: 22:43. |