Раньше я был разработчиком, как и вы, потом у меня появилась стрелка в колене.

Стрелочные функции - отличное дополнение к существующим анонимным и именованным функциям.

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

Объяснение синтаксиса стрелочных функций

Вы, наверное, уже видели такую ​​функцию:

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

Стрелка-функция по умолчанию может быть проще для понимания, потому что все, что отличается от анонимной функции, состоит в том, что мы опускаем ключевое слово функции и добавляем двойную стрелку => между списком аргументов и телом функции.

Стрелочные функции и ключевое слово this

Стрелочные функции не во всех отношениях ведут себя как стандартные. Есть одно огромное различие, и оно касается объема этого.

Этот пример показывает разницу. Хотя мы можем получить доступ к свойствам артаса в функции getName, мы не можем этого сделать в методе getLevel. Ключевое слово this относится к двум различным объектам. В getName он относится к артасу и связан с глобальным объектом this в getLevel.

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

Стрелочные функции не могут привязать другую область видимости

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

Резюме

Синтаксис стрелочных функций в JavaScript довольно прост, если вы усвоите его. Однако есть некоторые отличия от обычных функций, о которых следует помнить при использовании стрелочных функций.

Помимо разной области видимости внутри функции-стрелки и невозможности привязать к ней другую область видимости, есть и другие отличия. Например: стрелочные функции не могут быть созданы (вызываются с помощью ключевого слова new), и они обрабатывают параметры по-разному (они не могут обрабатывать два аргумента с одинаковым именем).

Помните о преимуществах и различиях при работе со стрелочными функциями в JavaScript.

Вот и все, ребята!