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