en.javascript.info/01-js/05-functions-closures/02-closures/06-counter-window-variable/solution.md
Ilya Kantor f301cb744d init
2014-10-26 22:10:13 +03:00

729 B
Raw Blame History

Выведут 1,2,3,4.

Здесь внутренняя функция будет искать -- и находить currentCount каждый раз в самом внешнем объекте переменных: глобальном объекте window.

В результате все счётчики будут разделять единое, глобальное текущее значение.

//+ run
var currentCount = 1;

function makeCounter() {    
  return function() { 
    return currentCount++; 
  };
}

var counter = makeCounter();
var counter2 = makeCounter();

*!*
alert( counter() ); // ?
alert( counter() ); // ?
*/!*

*!*
alert( counter2() ); // ?
alert( counter2() ); // ?
*/!*