Понимание функции сокращения Eloquent Javascript

ВКрасноречивый JavascriptАвтор просит читателя написать функциюcountZeroes, который принимает массив чисел в качестве аргумента и возвращает количество нулей, которые встречаются в нем, как еще один пример использованияуменьшить функция.

я знаю

что концепция функции Reduce состоит в том, чтобы взять массив и превратить его в одно значение.что делает троичный оператор, который является неотъемлемой частью функции.

Я нене знаю

где аргументы длясчетчик Функция исходит от.

Из книги:

function countZeroes(array) {
  function counter(total, element) { // Where are the parameter values coming from?
    return total + (element === 0 ? 1 : 0);
  }
  return reduce(counter, 0, array);
}

Более ранний пример из текста: я

function reduce(combine, base, array) {
 forEach(array, function (element) {
    base = combine(base, element);
  });
  return base;
}