Le funzioni in JavaScript possono essere definite per mezzo di quattro tecniche:
- espressioni con nome opzionale (ma assegnabile se le voglio usare più volte). Non sono hoisted .
- dichiarazioni con nome obbligatorio e con parola chiave
function. Il nome diventa il reference (oggetto della dichiarazione, appunto) - arrow function, nome opzionale, function opzionale, senza
this - IIFE (cioè funzioni dichiarate ed immediatamente eseguite, se ne rimanda la discussione)
Esempi
Esempio di epressione (si è aggiunta un’assegnazione per poter riusare la funzione):
const pluto = function (x) { //...
};
Esempio di dichiarazione (standard):
function minnie(x) { //...
}
quattro esempi sintatticamente equivalenti di arrow function
const idem1 = function (x) { // funz. anonima tradizionale
return x;
}
const idem2 = (x) => { // arrow function (anonima)
return x;
}
const idem3 = z => {
z;
}
const idem4 = y => y;
Si può osservare che in questi semplici esempi, vi sono alcune parti opzionali:
- la parola
functionnon è obbligatoria nelle arrow function - la parola
returnnon è obbligatoria nel caso in cui essa sia l’unica e sola istruzione. - Stessa regola vale per le parentesi tonde, nel caso in sui sia presente un solo parametro.
- Stessa regola di opzionalità vale anche per le parentesi graffe, nel caso in cui vi sia una sola istruzione.