Page 141 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 141

=
                   for ( l et  i=this . name . l ength-1 ;  i> O ;   i - - )  {
                                              e
                      nameBackwards  +=  this . nam [ i ] ;
                   return  nameBackwards ;
               } ;
                                                         H
               return  ' $ { getReverseName ( ) }  si  eman  ym  , o lle ' ;
           } ,
       } ;
       o . greetBackwards ( ) ;
          У стрелочных функций есть еще два дополнительных отличия от обычных функ­
       ций: они не могут использоваться как конструкторы объекта (см. главу 9) и в них не­
       доступна специальная переменная arguments (в которой больше нет необходимости
       благодаря оператору расширения).


       Методы      call, apply  Ьind
                                       и
          Мы уже видели, что значение переменной this зависит от вызываемого контекста
       (как и в других объектно-ориентированных языках). Но JavaScript позволяет опреде­
       лять, к чему привязана переменная this, независимо от того, как или где вызывается
       рассматриваемая функция. Давайте начнем с метода call, который доступен во всех
       функциях. Он позволяет вызывать функцию с определенным значением this.
       const  bruce   =  {  name :  "Bruce"  } ;
       const  madeline  =  {  name :  "Mad l i ne"  } ;
                                   e
       1 1   эта  функция  не  связана  ни  с  каким  объектом,
       1 1   но  все  же  в  ней  используется  ' t his ' !
       function  greet ( )    {
           return  ' П ривет !  Меня  зовут  $ { t his . n ame }  ! ' ;


       greet ( ) ;          / /  "Привет!  Меня  зовут  ! "  - ' t his '  не  привязана
       greet . c all ( b ruc ) ;   //  "Привет!  Меня
                     e
       зовут  Bruce ! "    - ' t his '  привязана  к  'bruce '
       greet . call (madeline ) ;  / /  "Привет!  Меня  зовут  Madeline ! "  - ' t his '  п р ивязана
                            / /  к  'madeline '
          Как  можно  заметить, метод  c a l l   позволяет вызывать функцию,  как  будто  это
       метод, предоставляемый объектом, к которому привязана переменная this. Первый
       аргумент метода call  - это значение, к которому вы хотите привязать this, а все
       остальные аргументы становятся аргументами вызываемой функции.
       function  updat ( birthYear,  occupation )
                    e
           this . birthYear  =  birthYear;
           th s . occupation  =  occupation;
             i



                                                         М етоды call, apply и Ьind   1 4 1
   136   137   138   139   140   141   142   143   144   145   146