Цитата:
Спасибо но в итоге, 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, время: 23:17. |