Что такое закрытие?
Замыкание — это функция, имеющая доступ к родительской области видимости даже после закрытия родительской функции. Замыкания в JavaScript — это функция, в которой внутренняя функция имеет доступ к переменным внешней функции.
Замыкание имеет три цепочки областей видимости
- Имеет доступ к своей собственной области видимости [переменная, определенная внутри фигуры].
- Имеет доступ к переменным внешних функций
- Имеет доступ к глобальным переменным
var a = 10;
function first_func(){
var b = 20;
function second_func(){
var c = a+b;
return c;
}
return second_func();
}
var sum = first_func();
document.write("The sum is " + sum + '<br>')
function temporary(){
let counter = 0;
return function(){
counter +=1;
}
}
const add = temporary();
console.dir(add)
add();
Вывод
function temporary(){
let counter = 0;
return function(){
// counter +=1;
console.log("Death Closure")
}
}
const add = temporary();
console.dir(add)
add();
Выход