Здравствуйте, изучаю JS, хотел освоить тему замыканий.
Есть пример:
function counter() {
var counter = 0;
return function() {
console.log(counter = counter + 1)
}
}
var b = counter();
b();
b();
b();
b();
b();
Мне не понятно, почему мы должны объявлять b и передавать результат функции в нее?
var b = counter();
И почему мы просто не можем писать:
function counter() {
var counter = 0;
return function() {
console.log(counter = counter + 1)
}
}
counter()();
counter()();
counter()();
counter()();
counter()();
counter()();