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

Таким образом, вы можете вызвать любую функцию с любым количеством аргу­
       ментов. Если при вызове функции вы не укажете аргументы, то им неявно присваи­
       вается значение undefined.

       function  f  х )    {
                 (
           return  ' В нутри  f :   х=$ { х } ' ;
       f ( ) ;    / /  "Внутри  f:  x=undefined"
          Далее в этой главе мы увидим, как справиться с ситуацией, в которой передается
       больше аргументов, чем определено в функции.

       Деструктуризация а р гументов

          Подобно деструктурирующему присваиванию переменных (см. главу 5), суще­
       ствуют также деструктурированные аргументы  (destructured argument) функций.
       В конце концов, аргументы очень похожи на переменные! Рассмотрим деструктури­
       зацию объекта на индивидуальные переменные.
       function  getSentence ( {   subject,  verb,  obj ect  } )
                                            t
                                  b
           return  ' $ { s ubj ect }  $ { ver }   $ { o bjec } ' ;

       const  о  =  {
           subj ect :  " I " ,
           verb :  " l ov " ,
                     e
             j
                            t
           ob e ct :  "JavaScrip " ,
       } ;
       getSentence ( o ) ;   1 1   "I  love  JavaScript "
          Как и при деструктурирующем присваивании, имена свойств должны быть стро­
       ковыми  идентификаторами,  а  переменным,  которым  не  соответствуют  свойства
       в исходном объекте, назначается значение undefined.
          Можно также деструктурировать массив.
       function  getSentence (  [  subj ect ,  verb,  obj ect  ] )  {
                                            t
           return  ' $ { s ubj ect }  $ { ver }   $ { o bjec } ' ;
                                  b

       const  arr  =  [  " I " ,   " l ov " ,   " J avaScript "  ] ;
                             e
       getSentence ( a rr) ;   / /  "I  love  JavaScript "
                                                                .
          И наконец вы можете использовать оператор расширения (  . .   ) для сбора любых
       дополнительных аргументов.
       function  addPrefix (prefix,  .  .  . words)

           1 1   позже  мы  изучим  лучший  способ  сделать  это !


       1 3 4    Глава 6. Функции
   129   130   131   132   133   134   135   136   137   138   139