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

Возвращаемые значения

          Вызов функции - это выражение, а как известно, выражения возвращают значе­
       ния. Так что возвращает вызов функции? Возвращаемое значение (return value). Клю­
       чевое слово return в теле функции немедленно завершает ее выполнение и возвраща­
       ет определенное значение, которое и является результатом вызова функции. Давайте
       изменим наш пример: вместо вывода на консоль просто возвратим приветствие.
       function  getGreeting ( )    {
           return  "Hello  world l " ;

          Т е перь, когда происходит вызов, функция создает возвращаемое значение.

       getGreeting ( ) ;    / /   "Hello,  World! "
          Без явного оператора  return возвращаемое значение будет undefined. Функция
       может возвратить значение любого типа; в качестве упражнения попробуйте создать
       функцию getGreetings, возвращающую массив, содержащий строки "Hello, W o rld"
       на разных языках.

       Вызов и л и    обращ    е н и е


          Функции в JavaScript являются объектами и могут быть переданы и присвоены
       подобно любым другим объектам. Важно понимать различие между вызовом ( calling)
       функции и просто обращением (referencing) к ней. Когда за идентификатором функ­
       ции следуют круглые скобки, JavaScript знает, что осуществляется вызов: выполняет­
       ся тело функции и выражение возвращает значение. Без круглых скобок вы просто
       обращаетесь к функции, как к любому другому значению, а это не вызов. Опробуйте
       следующее на консоли JavaScript.
       getGreeting ( ) ;   1 1   "Hello,  World! "
       getGreeting;        / /  функция  getGreeting ()
          Возможность обращения  к функции, как к  любому другому значению (не вы­
       зывая ее), обеспечивает большую гибкость языка. Например, вы можете присвоить
       функцию переменной, что позволит вызвать функцию под другим именем.

       const  f  =  getGreeting;
       f ( ) ;           1 1   "Hello,  World ! "
          Или можете присвоить функцию свойству объекта.

       const  о  =    { } ;
       o  . f    =  getGreeting;

       о  . f ( )   ;     / /  "Hello,  Wor ld ! "
          Или даже добавить функцию в массив.


       1 3 0    Глава б. Функции
   125   126   127   128   129   130   131   132   133   134   135