Не пишите анонимную функцию в JavaScript

Dec 23 2022
Это предупреждение для вас, никогда не пытайтесь написать анонимную функцию на JavaScript!
В основном «анонимные» мы знаем это должным образом, как кто-то, мы не знаем точной информации о том, кто они? где они? и так далее. В этой статье мы попытаемся объяснить связь термина «анонимный» в JavaScript.
Фото Маркуса Списке на Unsplash

В основном «анонимные» мы знаем это должным образом, как кто-то, мы не знаем точной информации о том, кто они? где они? и так далее. В этой статье мы попытаемся объяснить связь термина «анонимный» в JavaScript.

В основном мы работаем с JavaSript изо дня в день, и его нельзя отделить от написания «функции», либо мы просто делаем что-то вроде суммы, a + b + cлибо обрабатываем что-то вроде побочного эффекта. По сути, нет точного шаблона, что «эй, вы должны написать свою функцию вот так» , нет, но JavaScript обслуживает некоторый тип, которому мы можем следовать, например:

  1. Функция как объявление
  2. Функция как выражение
  3. Функция как конструктор

(function () {
  throw new Error("here");
})();

Представьте, что наш код большой и имеет 1001 функцию, которую нужно выполнить, а затем возникает нежелательная ошибка в функции № 900, потому что мы написали функцию анонимно, поэтому мы не знаем, как называется функция и где ошибка. является.

Нам будет сложно это отладить. Это то, что я сказал, что анонимные функции могут быть даже врагами во время разработки, даже если мы сами написали эту функцию, может быть, в прошлом.

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

Но это совсем другая история, если мы попытаемся назвать нашу функцию примерно так:

(function thisIsOurFunction() {
  throw new Error("oops");
})();

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

Это применяется только к React, Vue, Angular или Svelte? Нет, это независимый подход, который мы должны применить к нашему коду, чтобы убедиться, что если есть какие-то сбои в производстве, мы можем легко отследить это даже для себя на других участниках, которые пытаются исправить эту ошибку.

Если ваш проект/репозиторий поставляется с конфигурацией ESLint, вы можете попробовать установить этот плагин eslint-plugin-import/no-anonymous , это может упростить нам его обнаружение при написании нашего кода.