en.javascript.info/1-js/5-functions-closures/2-closures/6-counter-window-variable/solution.md
2015-03-10 12:36:58 +03:00

723 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() ); // ?
*/!*