Анонимной в 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. Анонимные функции могут выступать в качестве параметров в других функциях.