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

const  prefixedWords  =  [ ] ;
           for ( l et  i=O ;  i<words . l ength;  i++)  (
               prefixedWords [ i ]   =  prefix  +  words [ i ] ;

           return  prefixedWords ;



       addPrefix ( " c on" ,  "ver e " ,   "vex" ) ;    //  [ " converse ",  "convex "]
                           s
          Обратите внимание:  если вы используете оператор  расширения в  объявлении
       функции, то  это должен быть последний аргумент. Если вы поместите аргументы
       после него, у JavaScript не будет способа выяснить, что должно войти в расширение
       аргумента, а что должно войти в остальные аргументы.

                  В ESS подобные функциональные возможности реализуются с помо­
                  щью специальной переменной  r guments, которая существует только
                                              a
                  в пределах тела функции. Эта переменная была не фактическим мас­
                  сивом, а "подобным массиву" объектом, который зачастую требовал
                  специальной обработки или преобразования в надлежащий массив.
                  Расширение  аргументов  в  ЕSб  ликвидирует  этот недостаток  и  ему
                  должно отдаваться предпочтение перед использованием переменной
                  a r guments (которая все еще доступна).

       Стандартные  р г ументы
                         а
          Нововведением  ЕSб  является  способность  определять  стандартные значения
       (default value) для аргументов. Обычно, когда значения для аргументов не заданы, им
       присваивается значение undefined. С помощью стандартных значений можно опреде­
       лить некое другое значение для тех аргументов, которые не были переданы в функцию.
                 (
       function  f  а ,   Ь  =  "default " ,   с  =  3 )    {
           return  ' $ { а )   - $ { Ь }   - $ { с } ' ;


       f  ( S ,   6 ,   7 ) ;     1 1   " 5   - б  - 7 "
       f  ( S ,   6 ) ;   1 1   " 5   - б   - 3 "
       f ( 5 )  ;     1 1   "5  - default  - 3"
       f  ) ;        1 1   "undefined  - defa u l t   - 3 "
         (


       Функции как свойства объектов
          Когда функция  является  свойством объекта, ее  зачастую  называют методом
       (method), чтобы отличать от обычной  функции (вскоре мы узнаем больше разли­
       чий между функцией и методом). Мы уже видели в  главе  3, как можно добавить



                                                    Функции как свойства объектов   1 3 5
   130   131   132   133   134   135   136   137   138   139   140