JavaScript: замыкание
объясняем сущность замыкания в JavaScript
Замыкание — это комбинация функции и лексического окружения, в котором эта функция была определена. В JavaScript замыкания создаются каждый раз во время создания функции. Способность замыканий заключается в запоминании переменных и функций, объявленных во внешней области видимости.
function showBiodata(){
var employee = {
name:"Rayn Dahl",
age:45,
role: "Senior Programmer"
};
return function(){
console.table(employee);
}
}
var initClosure = showBiodata(); // Returns a function
initClosure();
В вышеприведенном коде функция showBiodata()
присваивается переменной:
var initClosure = showBiodata();
После чего возвращаемая функция выполняется при вызове initClosure()
:
initClosure();
Результат:
- name: ‘Rayn Dahl’
- age: 45
- role: ‘Senior Programmer’
В showBiodata()
вместо уничтожения значения employee
сразу после выполнения функции, они сохраняются для дальнейшего использования. По этой причине возвращающая функция initClosure()
может использовать переменную, объявленную во внешней области видимости, даже после того, как функция уже выполнена.
Cпособность функции сохранять переменную для дальнейшего использования даже после ее выполнения называется замыканием.
Спасибо за внимание.