Показать сообщение отдельно
  #1 (permalink)  
Старый 01.04.2021, 23:25
Интересующийся
Отправить личное сообщение для worldsering Посмотреть профиль Найти все сообщения от worldsering
 
Регистрация: 01.04.2021
Сообщений: 11

Замыкание. Умножение сохраненного параметра на переданный
Суть задачи в следующем:
Нужно написать функцию, которая принимает 1 параметр. При первом вызове, этот параметр запомнится , а при втором - умножает переданный параметр с тем, что передали первый раз и так можно делать до бесконечности.
const number5 = number(5);
const number10 = number5(2);
const number30 = number10(3);
number30(2) // 60  .... и так можно сколько угодно раз


Вот моя функция с замыканием, вполне себе просто, а главное хорошо работает, доп проверки мне ни к чему - этого нет в условии:
function math(value){
  let counter=1;
  return function(number){  
    return counter *= number;
  }  
}

Вот как она работает:
math(5) // 5
math(2) // 10
math(3) // 30


Но все таки мне нужно, что бы она работала по другому :
const number5 = math(5);
const number10 = number5(2); // и уже тут мне пишет, что number5 не функция .... и это логично, ведь мы ей присвоили значение от вызова math(5)
const number30 = number10(3);
number30(2) // 60  .... и так можно сколько угодно раз

Так вот как всё же сделать, что бы это работало так как мне надо, спасибо!


Подскажите, как это можно реализовать... спасибо

Последний раз редактировалось worldsering, 02.04.2021 в 13:43.
Ответить с цитированием