Page 88 - 6108
P. 88

Як що тіло функції обертається в {...}, то її результат вже не повертається
               автоматично. Така функція повинна робити явний return, якщо звичайно  хоче
               що-небудь повернути.
                      Функції-стрілки дуже зручні в якості коллбеков, наприклад:
                      let arr = [5, 8, 3];
                      let sorted = arr.sort ((a, b) => a - b);

                      Функції-стрілки мають свої особливості
                      1) Вони не мають свого контексту this. Усередині функцій-стрілок - той
               же this, що і зовні.
                      2)  Функції  стрілки  не  можна  запускати  з  new.  Відсутність  у  функції-
               стрілки "свого this" тягне за собою природне обмеження: такі функції не можна
               використовувати в якості конструктора, тобто не можна викликати через new.
                      3)  Функції-стрілки  не  мають  свого  масиву  arguments.  Як  arguments
               використовуються аргументи зовнішньої «звичайної» функції.
                     Функціональні вирази
                     JavaScript функція є значенням, таким же як рядок або число.
                     Як і будь-яке значення, оголошену функцію можна вивести, ось так:

                     function sayHi () {
                       alert ( "Привіт");
                     }
                     alert (sayHi); // виведе код функції
                     Функцію можна скопіювати в іншу змінну:

                     var func = sayHi;
                     func (); // Привіт
                     Існує альтернативний синтаксис для оголошення функції, який ще більш
               наочно показує, що функція – це всього лише різновид значення змінної. Він

               називається «Function Expression» (функціональний вираз) і виглядає так:

                      var f = function (параметри) {
                       // тіло функції
                     };
                     Наприклад

                      var sayHi = function () {
                       alert ( "Привіт" );
                     };
                     sayHi();

                     «Класичне»  оголошення  функції,  виду  function  ім'я  (параметри)  {...},
               називається в специфікації мови «Function Declaration».
                     Function Declaration – функція, оголошена в основному потоці коду.
                     Function Expression  – оголошення функції  в контексті будь-якого виразу,
               наприклад присвоювання.
                     Основна відмінність між ними: функції, оголошені як Function Declaration,
               створюються інтерпретатором до виконання коду. Тому їх можна викликати до
               оголошення.
   83   84   85   86   87   88   89   90   91   92   93