Рубрики
Без рубрики

Когда использовать объявление функции против функциональной экспрессии

Tech Jargon Seriesit, вероятно, вы уже знаете, как писать функции как в обоих этих способах. Функция Достоки () {} и () = > {} – символы, которые мы вводим весь день. Но как они отличаются и зачем использовать один над другим? Примечание. Примеры приведены в JavaScript. Ваш пробег может варьироваться с другими

Tech Jargon Series.

Вероятно, вы уже знаете, как писать функции в обоих этих способах. Функция Достоки () {} и () = > {} – символы, которые мы вводим весь день. Но как они отличаются и зачем использовать один над другим?

Примечание: Примеры приведены в JavaScript. Y наше М ILEAGE М AY. V ary с другими языками.

Первое отличие: имя

Когда вы создаете функцию с помощью Имя , это Декларация функции Отказ Имя может быть опущено в Функциональные выражения , делая эту функцию «анонимной».

Декларация функции:

function doStuff() {};

Функция выражения:

const doStuff = function() {}

Мы часто видим анонимные функции, используемые с синтаксисом ES6, как:

const doStuff = () => {}

Подъемность

Подъемка относится к доступности функций и переменных «в верхней» вашего кода, а не только после того, как они созданы. Объекты инициализируются при компиляционном времени и доступны в любом месте вашего файла.

Декларации функций поднимаются, но выражения функций нет.

Это легко понять с примером:

doStuff();
function doStuff() {};

Вышесказанное не бросает ошибку, но это будет:

doStuff();
const doStuff = () => {};

Случай для функционирования выражений

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

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

IIFE.

Имя – Сразу вызывало функционные выражения – в значительной степени говорит все это здесь. Когда функция создана одновременно, его называют, вы можете использовать IIFE, которая выглядит так:

(function() => {})()

или:

(() => {})()

Для глубокого взгляда на IIFES, проверьте Эта всесторонняя статья Отказ

Обратные вызовы

Функция, передаваемая другую функцию, часто называют «обратным вызовом» в JavaScript. Вот пример:

function mapAction(item) {
  // do stuff to an item
}
array.map(mapAction)
array.map(mapAction)

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

array.map(item => { //do stuff to an item })

или

const mapAction = function(item) {
  // do stuff to an item
}
array.map(mapAction)
array.map(mapAction)

Хотя картация будет доступен для кода ниже его инициализация.

Резюме

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

использованная литература

Tech Jargon Series

Существуют так много фраз, которые бросаются в Tech Mightups и конференции, предполагая, что все уже сгибаются с линго. Я часто не с линго. Для разработчиков распространены удивление, что мне не хватает знаний.

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

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

Оригинал: “https://www.freecodecamp.org/news/when-to-use-a-function-declarations-vs-a-function-expression-70f15152a0a0/”