Чи лічильники незалежні?
важливість: 5
Тут ми створюємо два лічильника: counter та counter2 використовуючи однакову функцію makeCounter.
Вони незалежні? Що покаже другий лічильник? 0,1 чи 2,3 чи щось інше?
function makeCounter() {
let count = 0;
return function() {
return count++;
};
}
let counter = makeCounter();
let counter2 = makeCounter();
alert( counter() ); // 0
alert( counter() ); // 1
alert( counter2() ); // ?
alert( counter2() ); // ?
Відповідь: 0,1.
Функції counter і counter2 створюються різними викликами makeCounter.
Отже, вони мають незалежні зовнішні лексичні середовища, кожне з яких має свою власну змінну count.