Скорее всего вы непоняли момент с передачей функции в качестве параметра.
Да, в javascript в качестве параметра можно передавать не только числа, строки и массивы, но и функции.
Функция может быть объявлена выше и иметь имя, тогда в качестве параметра передается ее имя (без скобок).
В данном случае функция является анонимной (без имени) и сразу объявляется в том месте, где она передается в виде параметра.
Функция reduce принимает следующие параметры: массив, функция от двух переменных, начальная сумма
combine(current, array[i]) - это вызов переданной в параметрах функции с двумя аргументами.