@AntonVirovets

Как трактовать данную функцию?

В процессе самообучение наткнулся на такую функцию
var x = 10;
function foo(a) {
  var b = 20;

  function bar(c) {
    var d = 30;
    return boop(x + a + b + c + d);
  }

  function boop(e) {
    return e * -1;
  }

  return bar;
}

var moar = foo(5);

moar(15);


НЕ понимаю почему а=5 а с=15. То есть я понимаю что в "а" записывается 5 из переменной moar , но это же не вызов функции а просто присвоение этой функции переменной, почему записывается в "а" 5? то же самое, я понимаю что в "С" записывается 15 из вызова этой переменной. Но почему? по сути должно в "а" записаться 15..вообще не понятно..
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Это
var moar = foo(5);
вызов функции, результатом которой будет другая функция, которую можно тоже вызвать. Можно было даже написать вот так:
foo(5)(15) // тоже самое
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы