@vs1710

Зачем в JS постоянно возвращают функции которые возвращают значения?

Не могу никак понять зачем в js в функции возвращают другие функции.
Вот даже тут можно себе спокойно в теле функции посчитать reduce и записать его в другую переменную, а после ее вернуть вернуть.
5b4b33cb9ebd1998540489.png
  • Вопрос задан
  • 786 просмотров
Решения вопроса 2
Оптимизация на уровне компилятора :)
Вместо того, чтобы писать:
var sum = function(...args) {
  var result = args.reduce(...);
  return result;
}

Пишут:
var sum = function(...args) {
  return args.reduce(...);
}
Ответ написан
Комментировать
rockon404
@rockon404
Frontend Developer
По вашему примеру вам ответил Владимир. А вот простой и наглядный пример по вопросу "зачем в js в функции возвращают другие функции":
const VAT_RATES = {
  FR: 20,
  GB: 20,
  IT: 22,
  PL: 23,
};
const createWithVAT = vat => price => price + price * vat / 100;

const currentVAT = VAT_RATES.GB;
const withVAT = createWithVAT(currentVAT);
const price = 250;
const totalPrice = withVAT(price);

console.log(totalPrice); // 300
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Вы не возвращаете функцию, вы возвращаете результат reduce
т.е. получается, функция sum делает суммирование аргументов, реализация которой состоит из вызова reduce. Чтобы каждый раз не писать этот reduce, можно теперь просто вызывать эту функцию. Так проще.
Ответ написан
@vs1710 Автор вопроса
Спасибо парням Антон Спирин, Алексей П и Владимир Проскурин за по мощь.
Что бы понять примеры которые подал Антон Спирин потребовалось разобрать замечательную статью.
https://developer.mozilla.org/ru/docs/Web/JavaScri...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы