/
Вопросы и ответы
/
JavaScript
/

Чем отличается объявление функции через стрелочную нотацию и function

Чем отличается объявление функции через стрелочную нотацию и function

В чем разница между объявлением функции через const name = () => {} и function?

4 года назад

Ivan Gagarinov

Ответы

1

Объявление стрелочной функции const name = () => {} это присваивание некоторого выражения в константу. Выражением тут является анонимная функция () => {}, и это накладывает теже ограничения, какие существуют для констант: нельзя переназначить константу и нельзя ее использовать до того, как она объявлена, а так же ограничивается зона видимости по всем правилам создания переменных через const, let, var.

Объявление через function () {} расширяет зону видимости функции и позволяет её использовать до создания функции. Например:

const hello = myFunc();
console.log(hello); // => hello
function myFunc() {
  return 'hello';
}

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

4 года назад

Ivan Gagarinov

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845