Тема: Поясніть за функції в функції і змінні в функції
Здорів. Поясніть лише одне. Чому от такий код 
var func = function(){
    var i=0;
    return function(){
        return i++;
    };
};
console.log(func()());
console.log(func()());
console.log(func()());
console.log(func()());виведе чотири нулі. А от такий
var func = function(){
    var i=0;
    return function(){
        return i++;
    };
}();
console.log(func());
console.log(func());
console.log(func());
console.log(func());виведе 0 1 2 3 ???? Дякую с: