Что значит fn в коде - function(fn) { fn(data); }?

Пытаюсь разобраться в этом примере кода. А именно в следующем блоке

Publisher.prototype.deliver = function(data) {
  this.subscribers.forEach(
    function(fn) {
      fn(data);
    }
  );
  return this;
};

Что такое fn в данном случае? Похоже на callback. Но какой именно если в функцию deliver передаётся только data?


Ответы (1 шт):

Автор решения: Komdosh

this.subscribers = []; - является массивом функций

var f = function print(data){
  console.log(data);
}
this.subscribers.push(f);

поэтом forEach перебирает все функции в subscribers и применяет их, fn - в данном конкретном случае является одной из функции в subscribers (так как идёт перебор всех элементов массива, fn является псевдонимом для текущего элемента массива).

this.subscribers.forEach(
  function(fn) { 
    fn(data);
  }
);

в моём случае subscribers содержит единственную функцию print, которая напечатает значение переменной data.

→ Ссылка