Анонімні і самовиконувана функції в javascript

Анонімність кожен день

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

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

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

Відмінність від звичайних функцій

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

Анонімні і самовиконувана функції в javascript

Сучасні тенденції і підходи в веб-розробці

Дізнайтеся алгоритм швидкого професійного зростання з нуля в сайтобудування

Способи застосування анонімних функцій

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

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

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

висновок

Зрозумівши суть анонімних і самовиконувана функцій, ви зможете передавати функції в змінних і перебудувати код за модулями. Функції такого роду можна використовувати також і для створення і повернення інших функцій. Тут мова вже заходить про замиканні, про який ми поговоримо в наступній статті.

Редакція: Команда webformyself.

Найсвіжіші новини IT і веб-розробки на нашому Telegram-каналі