Спасибо.
Да я понимаю что второй случай бесполезный три раза вызывать одну и туже функцию...
Только не совсем понимаю если с помощью fn() вызываем три раза функцию почему же ее значение накапливается, а не обнуляется как во вотором случае. Функция после fn() завершается возвращает 1. Все! Все локальные переменные функции по выходе из области видимости функции createCounter() должны быть удалены. Походу так и происходит при три кратном вызове одной и той же функции, которая во втором примере. Но тут так не происходит. Только почему? О_о
Более того если вставить document.write(numberOfCalls) еще в функцию то окажется что она выполниться все один раз по первому примеру. Вообще выходит странно как-то.
var numberOfCalls = 0;
document.write(numberOfCalls);