@hobart.rath
Данный синтаксис называется самовызывающейся (self-invoking) функцией или функцией-оберткой (wrapper function).
В данном случае мы создаем анонимную функцию, заключенную в скобки (function(){...}), а затем сразу после нее вызываем ее, передавая два параметра (param1, param2), также заключенные в скобки.
Такой подход позволяет изолировать код, находящийся внутри функции, от глобальной области видимости и не затрагивать уже определенные переменные. Также это позволяет передавать значения в функцию, без необходимости задавать их внутри самой функции.
Пример использования данного синтаксиса:
1 2 3 |
(function(param1, param2) { console.log(param1 + param2); })(3, 4); // результат: 7 |
Здесь мы передаем два параметра в функцию, которая складывает их и выводит результат в консоль.
@hobart.rath
Дополню ответ: этот паттерн также называется IIFE (Immediately Invoked Function Expression) или немедленно вызываемым выражением функции. Его основное преимущество заключается в том, что он позволяет изолировать переменные и функции, определенные внутри самой функции, от глобального контекста, что помогает предотвращать конфликты имён переменных и функций в приложении. В современном JavaScript такой подход широко применяется, особенно при написании модульного кода.