JavaScript/Funzioni definite dall'utente

Wikibooks, manuali e libri di testo liberi.

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

Si noti che una funzione può essere richiamata solamente dopo che è già stata inserita nel programma. Un codice come questo genererebbe errore:

var c = somma(3,5); //la funzione somma non esiste ancora!
 
function somma (a, b)
{ //una semplice funzione
    return a+b;
}


NOTA: l'affermazione riportata è falsa: il codice viene eseguito correttamente in entrambi i casi, sia con IE che con FireFox. Correggere.