Page 89 - 6108
P. 89

Це  через  те,  що  JavaScript  перед  запуском  коду  шукає  в  ньому  Function
               Declaration (їх легко знайти: вони не є частиною виразів і починаються зі слова
               function) і обробляє їх.
                     А  Function  Expression  створюються  в  процесі  виконання  виразу,  в  якому
               створені, в даному випадку – функція буде створена при операції присвоювання
               sayHi = function ...
                     Як  правило,  можливість  Function  Declaration  викликати  функцію  до
               оголошення – це зручно, так як дає більше свободи в тому, як організувати свій
               код.
                     Функціональне вираз, який не записується в змінну, називають анонімної
               функцією.  Дійсно,  навіщо  нам  записувати  функцію  в  змінну,  якщо  ми  не
               збираємося викликати її ще раз? Можна просто оголосити безпосередньо там,
               де функція потрібна.
                     Існує  ще  один  спосіб  створення  функції,  який  використовується  дуже
               рідко. Він дозволяє створювати функцію повністю «на льоту».

                     new Function (params, code):
                     –  params – параметри функції через кому у вигляді рядка.
                     –  code – код функції у вигляді рядка.

                     var sum = new Function('a,b', ' return a+b; ');
                     var result = sum(1, 2);
                     Таким чином можна конструювати функцію, код якої невідомий на момент
               написання програми, але рядок з ним генерується або подгружается динамічно
               під час її виконання.
                     Приклад використання – динамічна компіляція шаблонів на JavaScript.
                     Якщо функція необхідна лише один раз, можна використати функцію, яка
               негайно  викликається  –  це  синтаксична  конструкція,  що  дозволяє  викликати
               функцію зразу ж в місці її визначення.


                      (function () {
                          // ...
                     } ());

                     Або так
                     (function () {
                          // ...
                     })();
                     Огортання виразу в круглі дужки, використовується для того, щоб сказати
               інтерпретатора, що ключове слово function описує функціональне вираз. Також
               слід звернути увагу, що функція, яка привласнюється змінної, є фукціональним
               виразом, тому не вимагає додаткових дужок.
                     Так  само,  як  і  в  звичайні  функції,  в  негайно  викликані  функції  можна
               передавати параметри:

                     (function sum (a, b) {
                          console.log (a + b); // 5
                     })(2, 3);
   84   85   86   87   88   89   90   91   92   93   94