Что такое самовызывающаяся функция

Самовызывающаяся функция, также известная как IIFE (Immediately Invoked Function Expression — немедленно вызываемое функциональное выражение), это функция, которая определяется и выполняется автоматически, как только она была определена. Основное назначение — создание области видимости для переменных и функций, чтобы они не засоряли глобальное пространство имен и не вступали в конфликт с другим кодом на странице или в приложении.

Структура IIFE

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

(function() {
  // Тело функции
})();

Пример:

(function() {
  var localVar = 'Я локальная переменная';
  console.log(localVar); // Выводит: Я локальная переменная
})();
// localVar не доступна здесь, в глобальной области видимости

Параметры

Также могут принимать параметры, которые передаются через вторую пару скобок:

(function(message) {
  console.log(message); // Выводит: Привет!
})('Привет!');

Зачем использовать IIFE?

1. Изоляция переменных: Создаёт новую область видимости, что позволяет избежать конфликтов имен переменных и функций с другим кодом в глобальной области видимости.
2. Организация кода: Код внутри легко организовать и поддерживать, так как он является самодостаточным.
3. Приватность: Переменные и функции, объявленные внутри нее, не доступны извне, что обеспечивает их приватность.
4. Использование в модулях: В старых стандартах JavaScript, до введения модулей ES6, она часто использовались для имитации модульности, позволяя «инкапсулировать» модуль и его зависимости.

Несмотря на то что в современном JS для создания модулей и инкапсуляции кода чаще используются другие подходы (например, модули ES6), IIFE всё ещё могут быть полезны в определённых ситуациях, особенно при работе с кодом, который должен быть совместим с более старыми версиями JavaScript.

March 3, 2024, easyoffer

Самовызывающаяся функция (IIFE, Immediately Invoked Function Expression) — это функция, которая вызывается сразу же после её объявления. Используется для создания локальной области видимости и изоляции кода от глобальной области видимости.

Зачем нужны самовызывающиеся функции

Самовызывающиеся функции используются для:
1. Изоляции переменных и предотвращения их попадания в глобальную область видимости.
2. Создания замыканий.
3. Инициализации кода, который должен выполняться сразу после загрузки страницы или выполнения скрипта.

Как пишется самовызывающаяся функция

Синтаксис IIFE выглядит следующим образом:

```javascript
(function() {
  // код функции
})();
```

Или с использованием стрелочных функций:

```javascript
(() => {
  // код функции
})();
```

Примеры:

Изоляция переменных

```javascript
(function() {
  var message = 'Hello, World!';
  console.log(message); // Вывод: Hello, World!
})();

console.log(message); // Ошибка: message is not defined
```

В этом примере переменная `message` существует только внутри IIFE и недоступна вне её.

Создание замыканий

```javascript
var counter = (function() {
  var count = 0;
  return function() {
    count += 1;
    return count;
  };
})();

console.log(counter()); // Вывод: 1
console.log(counter()); // Вывод: 2
```

Здесь IIFE создаёт локальную переменную `count`, к которой можно получить доступ только через возвращаемую функцию.

Инициализация кода

```javascript
(function() {
  console.log('IIFE выполнена сразу после объявления!');
})();
```

Этот пример демонстрирует выполнение кода сразу после объявления функции.

Самовызывающаяся функция (IIFE) — это функция, которая вызывается сразу после её объявления. Она используется для изоляции переменных и создания замыканий.

May 27, 2024, easyoffer