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
function
non è obbligatoria nelle arrow function - la parola
return
non è 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.