Конструктор function створює новий об'єкт Function. В JavaScript кожна функція є об'єктом Function.
function functionName([argname1 [, ...[, argnameN]]])
{
functionCode
}
functionName = new Function( [argname1, [... argnameN,]] functionCode);
(argname1, [..., argnameN]) => { functioncode }
FunctionName - Ідентифікатор функції, який містить назву новоствореної функції по якому можна звертатися до функції. Якщо ідентифікатора не вказано тоді це буде анонімна функція.
argname1 ... argnameN - Список аргументів функції які передаються або іншими словами параметри функції. Кожне ім'я повинне мати унікальну назву. Список доступний у функції за допомогою arguments.
functionCode - блок коду JavaScript який буде виконуватися при виконанні функції.
function ключове слово яке оголошує функцію.
Синтаксис 1 є стандартним способом для створення нових функцій в JavaScript. Синтаксис 2 є альтернативною формою використовується для створення об'єктів функцій в явному вигляді. Також появився у ES6 спрощений синтаксис функції - стрілкові функції.
На відмінно від деяких мов програмування(Delphi, Pascal) JavaScript не має процедур а лише функції. Різниця між процедурою і функцією полягає в тому що процедура не повертає результат а функція повертає результат.
Функція у JavaScript завжди повертає результат, результатом може бути будь який тип даних. Повертається результат за допомогою оператора return. Якщо під час виконання функції результат не був повернутий тоді JavaScript автоматично повертає undefined.
Також є функції-конструктори і стрілкові функції.
Глобальний об'єкт Function не має власних методів або властивостей, однак, оскільки він сам є функцією, він успадковує деякі методи і властивості через ланцюжок прототипів об'єкта Function.prototype.
function suma(x,y)
{
return x+y;
}
alert( suma(6, 8) );
var suma= new Function('x','y', 'return x+y');
alert( suma(6,8) );
Також присвоювати змінній функцію можна наступним чином:
var s=function(x,y){return x+y;};
alert( s(4,5) ); //викликаємо функцію по назві змінної()
Приклад функції яка не повертає результат:
function suma2(x,y)
{
var suma=x+y;
alert(suma);
}
alert( suma2(4,4) ); //функція повертає undefined
Виклик функції без () поверне сам код функції:
function test(){
return 'test';
};
alert( test ); //виклик функції без ()
alert(test());