Просмотров: 2 695

Функция Javascript, которая выполняется сразу после ее определения (немедленно вызываемые функции).

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

Наверняка, вы привыкли работать вот с таким описанием функции:

 function nameFunction(параметры) {
    //Какие-то действия
  }
nameFunction(параметры)  // Вызов функции

Но, есть и другой способ работы с функциями:

(function () {
alert('Я функция, и я запустилась.');
}());

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

Отличие от предыдущего примера в том, что круглые скобки располагаются после тела самой функции.

() – эти скобки являются вызовом функции. Мы просто создаем анонимную функцию и тут же ее запускаем.

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

Такие функции называются немедленно вызываемыми функциями или immediately invoked function (IIFE). Как и обычным функциям, им тоже можно передавать параметры:

(function (name, where) {
alert("Меня зовут " + name + ". Я из  " + where);
}("Дима", "России"));

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

var result = (function () {
return 2 + 2;
}());

То же самое можно написать и так:

var result = function () {
return 2 + 2;
}();

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

Теперь, когда вы будете разбираться с очередным скриптом на Javascript, вы будете знать, что означает такая форма записи.

Успехов!