Открыть меню    

Function Declaration, Function Expression и изолированная область видимости

Function Declaration

Создаются ДО выполнения кода.

Пример функции Function Declaration:

javascript

Hello("привет");

function Hello(hi) {
  alert(hi);
}

Function Expression

В отличие от объявлений Function Declaration, которые создаются заранее, до выполнения кода, объявления Function Expression создают функцию, когда до них доходит выполнение.

Вызывать функцию "на месте" можно только посредством Function Expression.

javascript

var f = function(параметры) {
   // тело функции
};

Вызов функции на месте

javascript

var f = function() {
   alert(1111);
}(); // 1111

// но лучше, для читаемости кода, вызвать так
// при помощи круглых скобок

var f = (function() {
   alert(1111);
})();

Как браузер отличает Function Declaration от Function Expression

  • Если браузер видит function в основном потоке кода - он считает, что это Function Declaration.
  • Если же function идёт в составе более сложного выражения, то он считает, что это Function Expression.

Создаем отдельную область видимости для предотвращения возможных конфликтов

И в этом нам поможет объявление Function Expression(круглые скобки говорят интерпритатору javascript, что перед ним выражение, а поэтому функция внутри круглых скобок это Function Expression и ее можно вызвать на месте).

javascript


(function() {

  var a = 11 , b = 22; // переменные для нашего скрипта

  // код скрипта

})();

Теперь внутренние переменные скрипта стали локальными. Даже если в другом месте страницы объявлена своя переменная a — проблем не будет. Наш скрипт теперь имеет свою, изолированную область видимости.

Замечательная статья на эту тему: Function Declaration и Function Expression

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

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

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