Вызов функции на месте в JavaScript
Сейчас мы разберем прием, который позволяет вызвать функцию прямо на месте ее объявления. Такая конструкция называется Immediately Invoked Function Expression (IIFE).
Давайте посмотрим на примере. Пусть у нас есть вот такое функциональное выражение:
let func = function() {
console.log('!');
};
func(); // выведет '!'
Давайте теперь не будем присваивать нашу функцию в переменную, а вызовем ее сразу же, "на месте". Для этого после функции поставим круглые скобки:
+function() {
console.log('!'); // выведет '!'
}();
Наличие плюса в данном случае является обязательным условием, так как без него функция станет Function Declaration, а их на месте (да еще без имени) вызывать нельзя. Конечно же, вместо плюса может быть все, что угодно, - главное, чтобы наша функция была функциональным выражением.
Определите, не запуская код, что выведется в консоль:
!function() {
console.log('!');
}();
Определите, не запуская код, что выведется в консоль:
function() {
console.log('!');
}();