Цель: создать функцию
makeCounter(initialValue = 0), которая возвращает функцию‑счётчик. Первый вызов возвращает начальное значение (или0), каждый последующий — на1больше. Каждый счётчик независим.
++ увеличивает значение на 1function makeCounter(initialValue = 0)count++ (возвращает текущее значение, затем увеличивает) и ++count (увеличивает, затем возвращает)function makeCounter(initialValue = 0) {
// Закрытая переменная состояния — доступна только из возвращаемой функции
let count = initialValue;
// Возвращаем функция‑счётчик: отдаёт текущее значение, затем увеличивает его
return function() {
return count++; // пост‑инкремент: сначала вернуть старое значение, потом увеличить
};
}
window.makeCounter = makeCounter;Почему именно так:
count между вызовами. Это даёт независимое состояние для каждого нового счётчика.count++, а не ++count, чтобы первый вызов вернул начальное значение без увеличения. Это требование заложено в тестах.initialValue = 0 по умолчанию упрощает код — можно не проверять, передан ли параметр.makeCounter(...) создаёт новое лексическое окружение, поэтому counter1 и counter2 не мешают друг другу.Создайте функцию makeCounter, которая принимает необязательное целое число в качестве начального значения и возвращает функцию-счетчик.
makeCounter создают отдельные счетчикиconst counter = makeCounter();
counter(); // 0
counter(); // 1
counter(); // 2const counter = makeCounter(5);
counter(); // 5
counter(); // 6
counter(); // 7const counter1 = makeCounter(10);
const counter2 = makeCounter(20);
counter1(); // 10
counter2(); // 20
counter1(); // 11
counter2(); // 21makeCounterЦель: создать функцию
makeCounter(initialValue = 0), которая возвращает функцию‑счётчик. Первый вызов возвращает начальное значение (или0), каждый последующий — на1больше. Каждый счётчик независим.
++ увеличивает значение на 1function makeCounter(initialValue = 0)count++ (возвращает текущее значение, затем увеличивает) и ++count (увеличивает, затем возвращает)function makeCounter(initialValue = 0) {
// Закрытая переменная состояния — доступна только из возвращаемой функции
let count = initialValue;
// Возвращаем функция‑счётчик: отдаёт текущее значение, затем увеличивает его
return function() {
return count++; // пост‑инкремент: сначала вернуть старое значение, потом увеличить
};
}
window.makeCounter = makeCounter;Почему именно так:
count между вызовами. Это даёт независимое состояние для каждого нового счётчика.count++, а не ++count, чтобы первый вызов вернул начальное значение без увеличения. Это требование заложено в тестах.initialValue = 0 по умолчанию упрощает код — можно не проверять, передан ли параметр.makeCounter(...) создаёт новое лексическое окружение, поэтому counter1 и counter2 не мешают друг другу.Создайте функцию makeCounter, которая принимает необязательное целое число в качестве начального значения и возвращает функцию-счетчик.
makeCounter создают отдельные счетчикиconst counter = makeCounter();
counter(); // 0
counter(); // 1
counter(); // 2const counter = makeCounter(5);
counter(); // 5
counter(); // 6
counter(); // 7const counter1 = makeCounter(10);
const counter2 = makeCounter(20);
counter1(); // 10
counter2(); // 20
counter1(); // 11
counter2(); // 21makeCounterРедактор кода намеренно скрыт на мобильном.
Поверь, так лучше: я оберегаю тебя от искушения писать код в неидеальных условиях. Маленький экран и виртуальная клавиатура — не лучшие помощники для программиста.
📖 Сейчас: Изучи задачу, продумай решение. Действуй как стратег.
💻 Потом: Сядь за компьютер, открой сайт и реализуй все идеи с комфортом. Действуй как код-джедай!