Page 65 - 6105
P. 65
Увага: після sayHi немає дужок. Якби вони були, то виклик var func = sayHi ()
записав би в func результат роботи sayHi (), який дорівнює undefined, адже
всередині sayHi немає return. На момент (3) функцію можна викликати і як sayHi
() і як func ()... Проте, в будь-який момент значення змінної можна змінити. При
цьому, якщо воно не функція, то виклик (4) видасть помилку.
Звичайні значення, такі як числа або рядки, є даними. А функцію можна
сприймати як дію. Цю дію можна запустити через дужки (), а можна і скопіювати
в іншу змінну, як було продемонстровано вище. Існує альтернативний синтаксис
для оголошення функції, який ще більш наочно показує, що функція - це всього
лише різновид значення змінної.
Він називається «Function Expression» (функціональний вираз) і виглядає
так:
var f = function (параметри) {
// тіло функції
};
Наприклад:
var sayHi = function (person) {
alert ( "Привіт," + person);
};
sayHi ( 'Вася');
«Класичне» оголошення функції, виду function ім'я (параметри) {...},
називається в специфікації мови «Function Declaration».
Function Declaration – функція, оголошена в основному потоці коду.
Function Expression – оголошення функції в контексті будь-якого виразу,
наприклад присвоювання.
Незважаючи на трохи різний вигляд, по суті ці два записи роблять одне і те
ж:
// Function Declaration
64