Анонімні функції
Приклад анонімної функції
javascript
const sum = function(a, b) {
return a + b;
};Тут функція анонімна, тому що у неї немає імені після слова function.
Вона просто присвоєна змінній sum.
Як виглядає іменована функція для порівняння
javascript
function sum(a, b) {
return a + b;
}Тут у функції є ім'я - sum.
Його можна використовувати всередині функції (наприклад, для рекурсії) або в стеку помилок.
Де найчастіше використовуються анонімні функції
Анонімні функції частіше застосовуються:
- У функціональних виразах
javascript
const multiply = function(a, b) { return a * b; };- У колбеках
javascript
setTimeout(function() {
console.log("Минула 1 секунда");
}, 1000);- У стрілкових функціях (це теж різновид анонімних)
javascript
const greet = () => console.log("Привіт!");- В обробниках подій
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
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.