![]() |
Quando si lavora con le funzioni in JavaScript, spesso è utile assegnare valori predefiniti ai parametri per garantire che il codice funzioni correttamente anche se alcuni argomenti non vengono passati. Tuttavia, un problema comune si verifica quando si vuole impostare un valore predefinito solo per un parametro specifico senza influenzare gli altri.
Il Problema
In molti linguaggi di programmazione, come Python, è possibile passare argomenti per nome, consentendo di impostare solo il valore desiderato senza dover specificare tutti i parametri precedenti. Ad esempio, in Python possiamo scrivere:
Questo codice aggiornerà solo arg4, lasciando gli altri parametri ai loro valori predefiniti.
In JavaScript, tuttavia, i parametri delle funzioni sono posizionali, il che significa che per modificare un solo valore senza toccare gli altri, siamo costretti a passare anche tutti i parametri precedenti, anche se non intendiamo cambiarli. Supponiamo di avere la seguente funzione:
Se vogliamo cambiare solo arg4, dobbiamo comunque fornire anche i valori per arg1, arg2 e arg3 il che rende il codice meno chiaro e più suscettibile a errori:
Questo approccio diventa problematico soprattutto quando il numero di parametri aumenta e i valori predefiniti devono essere ripetuti ogni volta che vogliamo modificarne solo uno.
La Soluzione
Per ovviare a questo problema, possiamo utilizzare la destrutturazione degli oggetti con valori predefiniti. Questo metodo ci consente di passare un oggetto come argomento alla funzione e di specificare solo le proprietà che desideriamo modificare, mantenendo i valori predefiniti per le altre.
Ecco come possiamo implementare questa soluzione:
Ora possiamo chiamare la funzione modificando solo il parametro desiderato:
Questa chiamata aggiornerà arg4 a "mine", mentre gli altri parametri manterranno i loro valori predefiniti.
Output
Perché ={} è necessario?
Il ={} finale nella dichiarazione della funzione myFunction serve a gestire il caso in cui la funzione venga chiamata senza argomenti, come nel caso:
Senza ={}, se la funzione viene chiamata senza parametri, JavaScript tenterebbe di destrutturare undefined, causando un errore:
Grazie a ={}, se nessun argomento viene passato, la funzione utilizza un oggetto vuoto {} come valore predefinito, evitando l'errore e garantendo che i valori predefiniti dei parametri vengano mantenuti correttamente.
Cosa abbiamo imparato
L'uso di valori predefiniti per i parametri delle funzioni è una pratica comune in JavaScript, ma bisogna fare attenzione al modo in cui vengono assegnati per evitare comportamenti indesiderati. Utilizzando la destrutturazione con valori predefiniti annidati, possiamo garantire che ogni proprietà abbia il proprio valore di fallback senza sovrascrivere accidentalmente l'intero oggetto.
Questa tecnica migliora la robustezza e la leggibilità del codice, rendendolo più resistente a errori e più facile da mantenere, e avvicina il comportamento di JavaScript a quello di linguaggi più flessibili come Python.
Follow me #techelopment
Official site: www.techelopment.it
facebook: Techelopment
instagram: @techelopment
X: techelopment
Bluesky: @techelopment
telegram: @techelopment_channel
whatsapp: Techelopment
youtube: @techelopment


