Замыкания

function outer() {

    var a=5;

    return function(b) {
        console.log(a+b);        
    }

}

var inner =outer();

inner(7); //получаем 12

Мы можем переделать внешнюю функцию в анонимную, и устроить вызов на месте

var inner = (function() {

    var a=5;

    return function(b) {
        console.log(a+b);        
    }

})()

inner(8);

Функция, которая считает количество своих вызовов

var countFn = (function() {

    var counter=0;

    return function() {
        counter++;
        console.log(counter);        
    }

})()

countFn();// в консоль выведется 1
countFn();// в консоль выведется 2

Практика:

  1. Сделать функцию, которая бы считала количество вызовов самой себя
  2. Сделать "функцию-копилку". На вход получает число, а возвращает сумму ранее введенных чисел
  3. Сделать "функцию-мигалку". Функция по очереди выводит то true, то false
  4. Сделать функцию, которая генерирует функции для отрисовки либо квадратов, либо кругов

results matching ""

    No results matching ""