JavaScript/Funzioni definite dall'utente

Indice del libro

Come molti linguaggi di programmazione, anche JavaScript da la possibilità di creare le proprie funzioni personalizzate.

Come è stato già accenato in precedenza, una funzione è un sottoprogramma identificato da una sequenza di caratteri che può accettare o meno nessuno o più parametri e può restituire un valore.

Creare le proprie funzioni: una panoramica modifica

La sintassi per la creazione di una nuova funzione è la seguente:

function nome_funzione (arg1, arg2, argN...) {
    ''codice''
}

Ad esempio:

function benvenuto (nome) {
    alert("Benvenuto, " + nome);
}

Se vogliamo eseguire il codice contenuto nella funzione dobbiamo richiamarla (o invocarla). Ad esempio:

var n = prompt("Come ti chiami?");
if (n != "")
 benvenuto (n);

Con questo breve spezzone chiediamo all'utente di inserire il nome e, se non risponde con una stringa vuota e non ha premuto Annulla, gli porge il benvenuto (si noti che il metodo prompt restituisce una stringa vuota se l'utente fa clic su "Annulla").

Usare i parametri modifica

Come abbiamo visto, è possibile prevedere che l'utente possa passare alcuni parametri alla funzione. Dando una sguardo alla funzione di benvenuto creata precedentemente, vediamo che il parametro nome della funzione diventa poi automaticamente una variabile; se quando viene chiamata la funzione viene omesso, il parametro assumerà un valore nullo (che diventa 0 per i numeri, una stringa vuota per i valori alfanumerici, falso per i valori booleani).

Impostare un valore di ritorno modifica

Impostare un valore di ritorno di una funzione è molto semplice, basta seguire la sintassi:

return valore;

Quando incontra l'istruzione return, JavaScript interrompe l'esecuzione della funzione e restituisce il valore indicato. Ad esempio:

function somma (a, b)
{ //una semplice funzione
    return a+b;
}

var c = somma(3,5); //c assumerà il valore 8
somma(4,12); //in questo caso non succede nulla

Una funzione può anche essere utilizzata prima che ne venga dichiarato il contenuto. Il codice precedente e quello riportato qui sotto sono infatti entrambi validi

var c = somma(3,5); //la funzione somma non esiste ancora!

function somma (a, b)
{ //una semplice funzione
    return a+b;
}