Argomenti variabili in Javascript: due alternative
venerdì 9 ottobre, 2009In Javascript è possibile scrivere funzioni con argomenti variabili, cioè funzioni che non accettano necessariamente un numero predefinito di inputs. Ad esempio è possibile scrivere funzioni come questa:
-
// Questa funzione mostra il numero e il valore degli argomenti
-
// passati facendo riferimento all'oggetto interno arguments e
-
// non richiedendo nessuna dichiarazione
-
function parametri_variabili() {
-
alert ( 'Numero argomenti passati = ' + arguments.length );
-
// stampa tutti gli argomenti
-
var o = '';
-
for (var i = 0; i <arguments.length; i++) {
-
o += arguments[i] + '\n';
-
}
-
alert( o );
-
}
Quindi si ha:
-
parametri_variabili(); // nessuno
-
-
parametri_variabili( "ciao", 32 ); // due argomenti: stringa e numero
Questa tecnica è davvero utile in moltissimi casi, tuttavia - a mio parere - è possibile migliorarla in quanto questo approccio comporta:
- Gli argomenti devono seguire sempre lo stesso ordine: arguments[0] è il primo, arguments[1] è il secondo, e via discorrendo...
- L'accesso agli argomenti è per indice (arguments[0] o arguments[4] ad esempio), quindi poco "leggibile" nell'implementazione all'intero del codice
Un'alternativa potrebbe essere quela di usare gli oggetti-inline (Object Literal). Ad esempio potremmo scrivere:
-
function parametri_variabili( args ) {
-
alert( args.miaStringa );
-
alert( args.mioNumero );
-
}
-
-
// Utilizzando
-
parametri_variabili( {
-
miaString: 'ciao',
-
mioNumero: 32
-
});
-
-
// Oppure
-
parametri_variabili( {
-
mioNumero: 32,
-
miaString: 'ciao'
-
});
Come si può vedere dal codice, l'ordine degli argomenti, essendo proprietà di un oggetto, non è importante. Inoltre nell'implementazione della funzione il codice risulta esssere più chiaro, trattando "proprietà" di un oggetto invece di indici di un array.
Questa tecnica è decisamente ottima nel caso di funzioni con molti argomenti, ovviamente.










19

Non ci sono commenti per questo Post
Lascia un commento