19/25. Замыкания, как же они устроены?

Объясните, пожалуйста, зачем нужна новая переменная (var schoolkid) в этом коде?

var collectContainer = function () {
  var food = 'макароны';
  var eatDinner = function () {
    console.log('Поел ' + food);
  };
  return eatDinner;
};

var schoolkid = collectContainer ();
schoolkid();

Почему нельзя сделать вот так:

var collectContainer = function () {
  var food = 'макароны';
  var eatDinner = function () {
    console.log('Поел ' + food);
  }();
  return eatDinner;
};

collectContainer();

или вот так:

var collectContainer = function () {
  var food = 'макароны';
  var eatDinner = function () {
    console.log('Поел ' + food);
  };
  return eatDinner();
};

collectContainer();

а может вообще без return:

var collectContainer = function () {
  var food = 'макароны';
  var eatDinner = function () {
    console.log('Поел ' + food);
  }();
};

collectContainer();