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

Объявление функции. Когда мы определяем функцию с помощью ключевого слова «function».

Выражение функции: когда мы присваиваем функцию переменной (var, let или const).

Теперь давайте посмотрим на выражения именованных функций.

Основное преимущество заключается в том, что это позволяет нам вызывать функцию изнутри функции, т. Е. Самоссылка.

Возьмем пример факториальной функции. Во-первых, мы пытаемся использовать анонимную функцию, назначенную переменной factorial, поэтому здесь мы используем функциональное выражение.

Теперь, если кто-то изменит использование нашего функционального выражения, тогда facto(5) вернет NaN вместо 120, и если мы присвоим факториальной переменной какое-то строковое значение, наш код сломается.

Функция факториала была назначена на facto, поэтому ее нужно выполнить, но это не так. Это происходит из-за того, что мы даем ссылку в функции с именем factorial и при изменении значения factorial на что-то другое ссылка теряется, но факто остается в функции.

Чтобы решить эту проблему, мы можем использовать здесь выражение именованной функции. Мы создаем функцию fact и присваиваем ей переменную factorial.

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

Примечание. Именованная функция, т. е. fact, недоступна вне функции
console.log(fact(5)); // ошибка

Преимущества выражения именованной функции:

  1. Ссылка на себя
  2. Используется для рекурсии
  3. Отмена привязки обработчиков кликов

Вот и все, если вы узнали что-то новое из этой статьи, не забудьте выразить свою поддержку аплодисментами 👏.