Коротка відповідь
juniorАнонімна функція — це функція без імені, яка часто використовується як колбек або замикання. В JavaScript її можна оголосити через функціональний вираз: const fn = function(a){return a*2}; або за допомогою arrow syntax: const fn = (a)=>a*2;
Повне пояснення
Що це і навіщо Анонімна функція (anonymous function) — блок коду, який не має імені. Вона дозволяє передавати логіку як значення, зберігати її у змінній або викликати одразу.
Ключові принципи
- Функція визначається як вираз, а не декларація.
- Може бути використана в колбеках, замиканнях, таймерах.
- Підтримується як традиційний синтаксис
function, так і arrow‑функція.
Як це працює
При створенні функціонального виразу JS‑рушій (V8) виділяє пам’ять для коду, а змінна отримує посилання на цей блок. Коли викликається, контекст this визначається за правилами колбеку.
Практика і реалізація
// Функціональний вираз
const multiply = function(x, y){ return x * y; };
// Arrow‑функція
const add = (x, y) => x + y;
Тестування
import { describe, it, expect } from 'vitest';
describe('anonymous functions', () => {
it('should multiply correctly', () => {
const fn = (a: number, b: number) => a * b;
expect(fn(2, 3)).toBe(6);
});
});
Оптимізація та edge cases
- У випадку великих замикань варто уникати зайвих зовнішніх залежностей.
- Arrow‑функції не мають власного
this, що зменшує ризик помилок у колбеках.
Часті помилки
- Використання
functionзамість arrow‑функції в контексті, де потрібен лексичнийthis. - Забудова параметрів у функціональному виразі, що призводить до
undefined. - Перевантаження змінної, що містить функцію, іншим типом.
Follow‑up питання
- Як працює замикання у анонімних функціях?
- Чому arrow‑функції не мають власного
argumentsоб’єкта?