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. Функции
   135   136   137   138   139   140   141   142   143   144   145