Обращение к функции через переменную

Почему к функии заданной в указанном виде, нельзя обращаться напрямую, а только через переменную?

function createCounter() {
  var count = 0;
  return function() {
    return count++;
  };
}
var counter1 = createCounter();
console.log(counter1());

console.log(createCounter()); // ошибка..


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

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

Потому что сама функция - это createCounter. А createCounter() - это то, что эта функция возвратила, то есть другая функция. И ошибки никакой не возникает.

→ Ссылка
Автор решения: CrazyElf

Вы просто не вызвали полученную из функции функцию.

function createCounter() {
  var count = 0;
  return function() {
    return count++;
  };
}
var counter1 = createCounter();
console.log(counter1());

console.log(createCounter()()); // <- добавились ещё одни скобки!

Сначала createCounter() создаёт и возвращает функцию, а потом её нужно вызвать, отсюда ещё одни скобки.

→ Ссылка