Funções de ordem superior - Javascript

Eu estou trabalhando através do Eloquent Javascript. A funçãocontagem pega uma matriz e uma função de teste (é igual (x)) como argumentos e retorna a quantidade de elementos na matriz para a qual a função de teste retornou true.

Eu entendo a maneira ampla como essas funções estão funcionando e que logicamentetotal argumento para a função anônima passada para reduzir tem um valor de zero.

Alguém pode me ajudar a ver de onde vem o valor total? Eu quero ter uma imagem mais clara em minha mente.

function count(test, array) {
  return reduce(function(total, element) { // Where is the value for total coming from?
    return total + (test(element) ? 1 : 0);
  }, 0, array);
}

function equals(x) {
  return function(element) {return x === element;};
}

function countZeroes(array) {
  return count(equals(0), array);
}

Reduzir a função do anterior:

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

Para cada função anterior:

function forEach(array, action) {
  for (var i = 0; i < array.length; i++)
    action(array[i]);
}

questionAnswers(2)

yourAnswerToTheQuestion