Анонимные функции в JavaScript

Содержание

Анонимной в JavaScript называют функцию с которой не связано никакое имя или другими словами у такой функции нет имени. Также можно сказать, что если после ключевого слова function или перед знаком стрелочной функции => не стоит имя - функция анонимная. Однако если такую функцию положить в переменную она уже считается именованной.

Анонимная функция недоступна после первоначального создания, поэтому чаще всего она записывается в переменную и дальше с ней происходит работа. Но есть случаи, когда функция так и остается без уникального идентификатора.

Самовызывающаяся функция

    
    (function() {
        alert('Я буду настойчив и выучу все возможные записи функций!');
    })();                
    

Такая анонимная функция выполнится сразу же, как интерпретатор до неё дойдет. В такой записи, функция заключается в круглые скобки (), а после нее добавляется вызов ().

Также запись может быть сделана в стиле стрелочных функций.

    
    (() => {
        alert('JavaScript - это мультипарадигменный язык программирования.');
    })();        
    

Анонимные функции в качестве параметров

Зачем присваивать функции имя, если ее вызов происходит здесь, сейчас и больше нигде.

    
    setTimeout(function() {
        alert('Время заняться практикой JavaScript!');
    }, 5000);
    

В данном примере анонимная функция выступает в качестве аргумента функции setTimeout(), и выведет сообщение через пять секунд после загрузки страницы.

Еще один пример, но уже не с кастомной функцией.

    
    function importantQuestion(question, yes, no) {
        if (confirm(question)) yes()
        else no();
    }
         
    importantQuestion(
    "Вы хотите изучать JavaScript?",
    function() { alert("Не опускайте руки и у вас все получиться!"); },
    function() { alert("Отличная новость! Чем меньше у меня конкурентов, тем выше моя зарплата."); }
    );        
    

Итого

1. Анонимные функции становятся доступны, только после того, как интерпретатор дойдет до них, таким образом их вызов возможен только после записи функции в коде.

2. Анонимные функции короче и отлично подходят в тех случаях, когда на них не нужно ссылаться в коде.

3. Анонимные функции могут вызывать сами себя.

4. Анонимные функции могут выступать в качестве параметров в других функциях.