JavaScript·100 питань

[ITEM 4] QUESTION: Як працюють стрілочні функції?

Відповідь

Стрілочні функції в JavaScript є компактною альтернативою традиційним функціям, запровадженою в стандарті ES6, яка змінила підхід до написання лаконічного та сучасного коду. Вони мають низку важливих синтаксичних і концептуальних особливостей, які необхідно враховувати під час розробки програм.

Перший аспект — це короткий синтаксис, що дозволяє суттєво скоротити обсяг написаного тексту. Наприклад, можна опускати круглі дужки навколо єдиного аргументу функції та не писати ключове слово return, якщо тіло функції складається всього з одного виразу.

Другий і найголовніший концептуальний момент полягає в тому, що стрілочні функції не мають власного контексту виклику. Вони завжди успадковують його з навколишнього лексичного середовища, що повністю вирішує історичну проблему втрати контексту всередині методів масивів або асинхронних таймерів.

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

Четверте обмеження накладається на використання стрілочних функцій як конструкторів об'єктів. Їх неможливо викликати з оператором new, оскільки в них повністю відсутній внутрішній метод створення екземпляра та спеціальна властивість prototype.

На практиці стрілочні функції незамінні при передачі невеликих колбеків у методи на кшталт map, filter і reduce. Проте їх не варто застосовувати як методи об'єктів, якщо потрібна динамічна прив'язка контексту до об'єкта, що викликає, через ключове слово this.

Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем