Skip to main content

Анонімні функції

Приклад анонімної функції

javascript
const sum = function(a, b) { return a + b; };

Тут функція анонімна, тому що у неї немає імені після слова function. Вона просто присвоєна змінній sum.


Як виглядає іменована функція для порівняння

javascript
function sum(a, b) { return a + b; }

Тут у функції є ім'я - sum. Його можна використовувати всередині функції (наприклад, для рекурсії) або в стеку помилок.


Де найчастіше використовуються анонімні функції

Анонімні функції частіше застосовуються:

  1. У функціональних виразах
javascript
const multiply = function(a, b) { return a * b; };
  1. У колбеках
javascript
setTimeout(function() { console.log("Минула 1 секунда"); }, 1000);
  1. У стрілкових функціях (це теж різновид анонімних)
javascript
const greet = () => console.log("Привіт!");
  1. В обробниках подій
javascript
button.addEventListener('click', function() { console.log("Натиснули кнопку"); });

Переваги

Короткий і лаконічний синтаксис. Чудово підходять для одноразових функцій, особливо як аргументи (callback). Використовуються в стрілкових функціях і сучасних методах (map, forEach, filter тощо)


Недоліки

Складніше відлагоджувати - у стеку помилок не видно імені функції:

javascript
TypeError at <anonymous>:3:10

Не можна викликати саму себе рекурсивно (без імені). Можуть погіршити читабельність, якщо використовуються занадто часто і вкладено.


Приклад: іменована vs анонімна в колбеку

javascript
// Анонімна функція setTimeout(function() { console.log("Hi"); }, 1000); // Іменована функція (зручніше для відлагодження і повторного використання) function sayHi() { console.log("Hi"); } setTimeout(sayHi, 1000);

Коротко запам'ятати

ТипПрикладЄ ім'я?Можна викликати напряму?
Іменованаfunction foo() {}ТакТак
Анонімнаfunction() {}НіТільки через змінну або колбек
Стрілкова() => {}Ні (анонімна по суті)Через змінну

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.