Page 140 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 140
Стрелочная нотация
В спецификацию ЕSб введен новый долгожданный синтаксис стрелочной нота
ции (arrow notation). Это чрезвычайно полезный синтаксис (он имеет одно серьез
ное функциональное отличие, до которого мы вскоре дойдем), который существенно
t
экономит время на вводе слова func i on, а также сокращает количество фигурных
скобок, которые нужно ввести.
Стрелочные функции позволяют упростить синтаксис тремя способами.
• Опустить слово function.
• Если функции передается один аргумент, опустить круглые скобки.
• Если тело функции - одно выражение, опустить фигурные скобки и оператор
return.
Стрелочные функции всегда являются анонимными. Вы вполне можете присво
ить их переменной, но не можете создать именованную функцию, как в случае ис
пользования ключевого слова function.
Рассмотрим следующие эквивалентные функциональные выражения.
const f 1 function ) { return "hello ! " ; }
(
1 1 или
const fl ( ) => "hello ! " ;
e
const f2 funct ion ( n ame ) { return ' H ello, $ { nam } ! ' ; }
1 1 или
const f2 name => ' H ello, $ { name } ! ' ;
const fЗ function а , Ь ) { return а + Ь ; }
(
1 1 или
const fЗ ( а , Ь ) => а + Ь;
Эти примеры немного надуманы; обычно, если необходима именованная функ
ция, вы просто используете обычное объявление функции. Стрелочные функции
особенно полезны для создания и передачи в виде параметров анонимных функций,
которые мы будем видеть весьма часто начиная с главы 8.
У стрелочных функций действительно есть одно серьезное отличие от обычных
функций: переменная this привязывается лексически, точно так же, как и любая дру
гая переменная. Вспомните наш пример greetBackwards ранее в главе. Со стрелочной
функцией мы можем использовать переменную this во внутренней функции.
const о = {
name : ' J ulie ' ,
greetBackwards : function ( ) {
const getReverseName = ( ) =>
' ' .
let nameBackwards = ,
140 Глава 6. Функции

