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

let x = function name_of_function(parameters) {
 function body, also know as a "block"
}

С выпуском ES6 в 2015 году появилась новая функция Arrow Functions: гладкий и лаконичный стиль написания функций JavaScript, который позволяет разработчику определять функцию следующим образом:

let x = (parameters) => {
 function body / "block"
}

Со «стрелкой» — это использование => между параметрами и телом функции стрелки. В сети это иногда называют «толстой стрелой».

Стрелочные функции не имеют обычных привязок следующих ключевых слов: this, arguments, super, or new

  • this & super keywords: стрелочные функции НЕ имеют своих собственных определенных this в пределах прилагаемой лексической области. Другими словами, this, используемый в теле стрелочной функции, относится к тому же this, что и объект, несущий саму стрелочную функцию. Что касается ключевого слова super, которое используется для вызова функций родителя объекта, применяется тот же принцип лексической области видимости, что и для this. Стрелочные функции с super в теле функции будут применять функциональность этого ключевого слова к родительскому элементу включающей их лексической области видимости (родительскому объекту, содержащему саму стрелочную функцию).
  • arguments keyword: объекты аргументов недоступны в стрелочных функциях, но доступны в обычных функциях.
  • new keyword: функции «обычного стиля» являются конструируемыми, что означает, что их можно вызывать с использованием ключевого слова new следующим образом:
let x = function(parameters) {
       do something;
};
new x = (1,2,3);

В то время как стрелочные функции не являются конструируемыми, то есть их нельзя использовать в качестве конструкторов и использовать ключевое слово new.