Открыть меню    

Немедленно вызываемая функция javascript

Описание немедленно вызываемой функции

Рассмотрим конструкцию (…)(). Любая функция вызывается при помощи следующего синтаксиса:
function_name(), однако следует иметь ввиду, что вместо function_name можно указать любое выражение, ссылающиеся на экземпляр функции. Поэтому вас не должна удивлять такая запись:

var karamba = function(){……};
result = karamba();

В случае если оператор вызова функции () нужно применить ко всему выражению, то такое выражение заключается в круглые скобки. Поэтому первая пара круглых скобок в конструкции (…)() служит ограничителем, а вторая пара круглых скобок служит оператором. Воспользуемся этим и перепишем вышеприведенный пример:

var karamba = function(){……};
result = (karamba)();

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

(function(){……})();

Немедленно вызываемая функция очень эффективна в определенных ситуациях.

Передача аргументов немедленно вызываемой функции

(function(arg){console.log(arg)})('первый пошел'');

Используется, например, для оболочки (во избежании конфликтов), которая определяет $ как ссылку на jQuery.

(function($){
    $('a').css({'color':'red'})}
)(jQuery);

Альтернативный синтаксис

javascript

(function(){
    console.log("ogo");
}())

Данный шаблон работает только с функциями-выражениями(именованные, анонимные). И сразу вызывет функцию после ее определеия

Существует альтернативный синтаксис:

javascript

(function(){
    console.log("atu");
})();

Данная конструкция создает свою (изолированную) область видимости.

Описание шаблона для немедленно вызываемой функции:

1 Определяем функцию выражение.

function(arg1, arg2){
   console.log(arg1 + " и " + arg2);

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

function(arg1, arg2){
   console.log(arg1 + " и " + arg2);
}("Значений 1","Значение 2")

3 Вышеописанную конструкцию заключаем в круглые скобки.

(function(arg1, arg2){
   console.log(arg1 + " и " + arg2);
}("Значений 1","Значение 2"));

Параметры и немедленно вызываемая функция

Немедленно вызываемым функциям можно передавать параметры:

js

(function(arg1, arg2){
   console.log(arg1 + " и " + arg2);
}("Значений 1","Значение 2"));

//Значений 1 и Значение 2

Освобождаем $, чтобы любая другая библиотека могла его использовать

Создаем окружение, где $ ссылается на объект jQuery

jQuery

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


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

/*
выше приведена ф-я, заключенная в круглые скобки,
 с целью превратить ее
в выражение с результатом в виде ссылки на анономную ф-ю,
 возвращаемую как значение выражения.
Функции передается $, то есть на все,
 что передается этой ф-и можно ссылаться по идентификатору $
*/

(jQuery)
/* вызывает ф-ю и передает объект jQuery анонимной ф-и в качестве аргумента */

Здесь внешнее объявление $ недоступно в пределах тела функции.

Комментарии к статье

Добавить комментарий к сниппету

  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом