Conosco due definizioni per un "Callback":
-
Una funzione che viene chiamata dopo ("richiamata quando") viene attivato un determinato evento.
-
Una funzione passata a un'altra funzione come parametro.
Un esempio per la prima definizione (JavaScript):
document.addEventListener('DOMContentLoaded', ()=>{
alert("DOMContentLoaded !");
});
Capisco che alert()
sia il gestore di eventi per l'attivazione di eventi DOMContentLoaded
, ma un programmatore mi ha detto che "dire che un callback è un gestore di eventi è come dire che un veicolo è una bicicletta". Mi manca come questa affermazione è logica.
Perché frainteso la seconda definizione (JavaScript):
let x = (y=1)=>{
console.log(y, "\n We get 1, so it works.");
}
x();
Quanto sopra funziona, ma se passerò un'altra funzione come parametro alla prima funzione, non solo ci sarà un errore, ma sembrerà anche brutto IMO:
let x = ( let y = (z=1)=>{console.log(z);} )=>{
y();
}
x();
Uncaught SyntaxError: Unexpected identifier
Ho frainteso la seconda definizione; che senso ha "passare un'altra funzione come parametro alla prima funzione" nella programmazione in generale.
Le mie domande
-
se "callback" è un concetto formale CS , la cui definizione dei due è corretta.
-
Se almeno in JavaScript non si può effettivamente passare una funzione come parametro ad un'altra funzione, cosa significano alcuni programmatori quando dicono che "una callback è quando si passa una funzione come 'argomento' (parametro) a un'altra funzione "?