Parametri di default in Javascript
Partendo dall'implementazione della versione 6 di ECMAScript, anche in Javascript è possibile usare dei parametri di default nelle funzioni.
Ricordiamo che nelle funzioni di Javascript, non era obbligatorio passare tutti i parametri.
Se ne potevano passare di meno, senza precuderne il funzionamento di base (a meno che il parametro non servisse a qualcosa di essenziale ovviamente); e addirittura, se ricordo bene, se ne potevano passare anche di più.
Ma non era possibile dare un valore di default ad un parametro (cosa che a me piace molto).
Per controllare i valori dei parametri, si doveva controllare che non fossero undefined.
Una cosa del genere:
function dtClassic(id, colOrder, typeOrder, keys, responsive) {
keys = typeof keys !== 'undefined' ? keys : false;
responsive = typeof responsive !== 'undefined' ? responsive : true;
$(id).DataTable({
responsive: responsive,
keys: keys,
"lengthMenu": [[10, 25, 50, 100, 200, -1], [10, 25, 50, 100, 200, "All"]],
"aaSorting": [[colOrder, typeOrder]],
language: {
url: urlIta
},
buttons: [
'copy', 'excel', 'pdf', 'print'
],
"initComplete": function (settings, json) {
$(this).DataTable().buttons().container().appendTo($('#dt_buttons'));
}
});
}
Come vedete, all'inizio controllo i valori degli ultimi due parametri.
Questa funzione può diventare così:
function dtClassic(id, colOrder, typeOrder, keys = false, responsive = false) {
$(id).DataTable({
responsive: responsive,
keys: keys,
"lengthMenu": [[10, 25, 50, 100, 200, -1], [10, 25, 50, 100, 200, "All"]],
"aaSorting": [[colOrder, typeOrder]],
language: {
url: urlIta
},
buttons: [
'copy', 'excel', 'pdf', 'print'
],
"initComplete": function (settings, json) {
$(this).DataTable().buttons().container().appendTo($('#dt_buttons'));
}
});
}
Come vedete assegno un valore di default; se richiamo la funzione senza passare gli ultimi due parametri, non devo fare nessun controllo.
Comunque, tutto ciò descritto sopra, vale tutt'ora; nel senso che entrambe le formule sono ammesse (se si ha un browser aggiornato ovviamente, sennò non credo i parametri di default funzionino).
Sul sito della Mozilla Developer Network potete trovare altra buona documentazione al riguardo.
Enjoy!
javascript ecmascript
Commentami!