Показать сообщение отдельно
  #18 (permalink)  
Старый 08.03.2011, 22:21
Интересующийся
Отправить личное сообщение для Goodfella Посмотреть профиль Найти все сообщения от Goodfella
 
Регистрация: 22.02.2011
Сообщений: 11

Сообщение от Kolyaj
Второе.
Просто вот почему спрашиваю, взгляните на код:
function createCounter() {
	var numberOfCalls = 0;
    alert(numberOfCalls);
	return function() {
		alert(numberOfCalls);
    return ++numberOfCalls;
   }
}
var fn = createCounter();
fn(); //Выводит сообщение "0", "0", все ясно, первый вызов.
fn(); //Вызывается только вложенная функция, alert выводит "1", опять же окей.
createCounter(); //Вызывается вся функция, переменная "numberOfCalls" обнулена, alert объемлющей функции выводит "0", годиться.
fn(); //Вызывается опять только вложенная, хотя, по идее "numberOfCalls" был обнулен, alert вывел "2", вот это - не понятно.
Ответить с цитированием