Page 66 - 6105
P. 66

function sum (a, b) {
                        return a + b;


                      }
                      // Function Expression

                      var sum = function (a, b) {

                        return a + b;

                      }

                      Обидва  цих  оголошення  говорять  інтерпретатору:  "Оголоси  змінну  sum,

               створи функцію з зазначеними параметрами та кодом і збережи її в sum".

                      Основна відмінність між ними: функції, оголошені як Function Declaration,

               створюються  інтерпретатором  до  виконання  коду.  Тому  їх  можна  викликати  до

               оголошення, наприклад:

                      sayHi ( "Вася"); // Привіт Вася

                      function sayHi (name) {

                        alert ( "Привіт," + name);

                      }

                      А  якби  це  було  оголошення  Function  Expression,  то  такий  виклик  б  не

               спрацював:

                      sayHi ( "Вася"); // помилка!

                      var sayHi = function (name) {

                        alert ( "Привіт," + name);

                      }

                      Це  через  те,  що  JavaScript  перед  запуском  коду  шукає  в  ньому  Function

               Declaration (їх легко знайти: вони не є частиною виразів і починаються зі слова

               function) і обробляє їх. А Function Expression створюються в процесі виконання

               виразу,  в  якому  функція  буде  створена  при  операції  присвоювання  sayHi  =

               function … Як правило, можливість Function Declaration викликати функцію до






                                                                65
   61   62   63   64   65   66   67   68   69   70   71