Самовиклик функцій
На співбесідах можна часто почути питання: "Як зробити так, щоб створена функція одразу виконалась?".
Одразу приходить ідея:
function test(){ console.log('test'); }
test();
Та отримуєте -1 бал в анкетку. Правильна відповідь - взяти функцію в дужки і поставити ще раз дужки поруч:
(ініціалізація_функції)();
(function test() { console.log('test'); })();
Якщо функція викликатиметься лише раз - її можна зробити анонімною:
(function() { console.log('test'); })();
З таким способом ми ближче познайомимося при вивченні бібліотеки jQuery.
Якщо потрібно передати аргументи - вони прописуються у другі дужки:
(function(a, b) { console.log(a, b); })(5, 24);
Вважається хорошим тоном огортати весь свій код у замикання. Маємо скрипт:
let a...
...
...
console.log(...);
Можна його огорнути у функцію та викликати її:
function homework37() {
let a...
...
...
console.log(...);
}
homework37();
Або огорнути дужками анонімну функцію:
(function() {
var a...
...
...
console.log(...);
})();
При такому способі всі створені вами змінні будуть локальними, а не глобальними, вони гарантовано не будуть конфліктувати з кодом інших розробників, бібліотек і т.п.