Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
function makeCounter() {
let count = 0;
return () => {
count += 1;
return count;
};
}
const a = makeCounter();
const b = makeCounter();
console.log(a(), a(), b());1 2 1
- Ждать
1 2 3: каждый вызовmakeCounterсоздаёт свойcount, поэтомуbначинает с нуля и не видит счётa. - Ждать
1 1 1:let count = 0выполняется один раз на вызовmakeCounter, а не при каждом вызове возвращённой функции, поэтомуaпродолжает считать.
- Что вернёт
a(), если вызвать её в третий раз? - Как сделать так, чтобы два счётчика делили один
count?