Что в javascript значит синтакс ( function(){...} )( param1, param2); ?

Пользователь

от hobart.rath , в категории: JavaScript , 2 года назад

Что в javascript значит синтакс ( function(){...} )( param1, param2); ?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jaren , 2 года назад

@hobart.rath 

Данный синтаксис называется самовызывающейся (self-invoking) функцией или функцией-оберткой (wrapper function).


В данном случае мы создаем анонимную функцию, заключенную в скобки (function(){...}), а затем сразу после нее вызываем ее, передавая два параметра (param1, param2), также заключенные в скобки.


Такой подход позволяет изолировать код, находящийся внутри функции, от глобальной области видимости и не затрагивать уже определенные переменные. Также это позволяет передавать значения в функцию, без необходимости задавать их внутри самой функции.


Пример использования данного синтаксиса:

1
2
3
(function(param1, param2) {
  console.log(param1 + param2);
})(3, 4); // результат: 7


Здесь мы передаем два параметра в функцию, которая складывает их и выводит результат в консоль.

Пользователь

от jeremy_larkin , 8 месяцев назад

@hobart.rath 

Дополню ответ: этот паттерн также называется IIFE (Immediately Invoked Function Expression) или немедленно вызываемым выражением функции. Его основное преимущество заключается в том, что он позволяет изолировать переменные и функции, определенные внутри самой функции, от глобального контекста, что помогает предотвращать конфликты имён переменных и функций в приложении. В современном JavaScript такой подход широко применяется, особенно при написании модульного кода.