juniorfunctions
Что такое замыкание (closure)?
Ответ
Замыкание — это функция, которая запоминает переменные из своей внешней области видимости даже после того, как внешняя функция завершила выполнение. Замыкание «закрывает» (closes over) переменные из окружающего контекста.
JSJavaScriptPYPython
Примеры кода:
JSJavaScript
function makeCounter() {
let count = 0; // эта переменная "замкнута"
return function() {
count++;
return count;
};
}
const counter = makeCounter();
console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3PYPython
def make_counter():
count = 0 # эта переменная "замкнута"
def counter():
nonlocal count
count += 1
return count
return counter
counter = make_counter()
print(counter()) # 1
print(counter()) # 2