Замыкания в JavaScript
В JavaScript областью видимости локальных переменных (объявляемых словом var) является тело функции, внутри которой они определены. Если вы объявляете функцию внутри другой функции, первая получает доступ к переменным и аргументам последней:
function outerFn(myArg) {
var myVar;
function innerFn() {
// имеет доступ к myVar и myArg
}
}
При этом, такие переменные продолжают существовать и остаются доступными внутренней функции даже после того, как внешняя функция, в которой они определены, была исполнена. Рассмотрим пример — функцию, возвращающую количество собственных вызовов:
function createCounter() {
var numberOfCalls = 0;
return function() {
return ++numberOfCalls;
}
}
var fn = createCounter();
fn(); // 1
fn(); // 2
fn(); // 3
Комментарии:
Нету комментариев для вывода...