Sono in una vergognosa situazione in cui, ancorato a vecchi modi di programmare, sebbene mi sia messo al corrente di varie pratiche più moderne, mi trovo ad avere dubbi che ho pure vergogna a chiedere. Vi presento un caso che mi sembra illogico.
Ho la seguente situazione, in cui c'è la funzione login che chiama la funzione start.
Mi ritrovo una funzione start che prende 2 parametri, mentre la vedo chiamata con un parametro solo.
Vabbè, suppongo che il secondo parametro sia opzionale, vado avanti.
La cosa strana: nel corpo della funzione start c'è una funzione anonima che ha come parametro la variabile response.
Non riesco a capire da dove salta fuori quella variabile response, visto che non la trovo altrove nel programma.
Come viene inizializzata e come fa ad avere uno stato (response.status) se praticamente non esiste?... per me è illogico ma il programma funziona.
Qualcuno disposto a spiegarmi in modo facile il ciclo di vita di quella variabile? Grazie.
codice:
function login(aLocation) {
aService.login(version).then(start(aLocation), displayError(true));
}
// funzione chiamata dalla precedente
function start(aLocation, disableWS) {
return function (response) { //da dove salta fuori response?
if (response && (response.status === 200)) {
//...
anotherService.init(aLocation, disableWS);
}
};
}
Se qualcuno volesse scrivere risposte sulla mia ignoranza, o che leggendo wikipedia o un certo libro c'è tutto pregherei di astenersi, mi vergogno già di mio e non sono riuscito a chiarire il dubbio altrove, quindi preferirei risposte più concrete o al più link dove è spiegato questa che per me è magia nera.