Cosa sono le chiusure e le callback?

Quali sono le chiusure e le callback in JavaScript? Devo ancora trovare una buona spiegazione di entrambi.

Le chiusure sono già state gestite bene in Stackoverflow qui è solo una selezione: –

Come funziona una chiusura javascript?
A cosa si riferisce esattamente “chiusura” in JavaScript?
puoi dire che questo è un buon esempio di chiusura Javascript .. Dove sono i posti che dobbiamo considerare evitando le chiusure ??
Scope e chiusura JavaScript
Chiusure Javascript e ‘questo’ contesto
JavaScript – Come apprendo l’utilizzo di “chiusure”?

Le callback sono un concetto più semplice. Un callback è fondamentalmente dove una funzione accetta un’altra funzione come parametro. Ad un certo punto durante l’esecuzione la funzione chiamata eseguirà la funzione passata come parametro, questo è un callback . Molto spesso il callback avviene in realtà come un evento asincrono, nel qual caso la funzione chiamata può tornare senza aver eseguito la richiamata, che può avvenire in seguito. Ecco un esempio comune (basato su browser): –

function fn() { alert("Hello, World"); } window.setTimeout(fn, 5000); 

Qui la funzione fn viene passata come richiamo alla funzione setTimeout . Imposta il timeout restituisce immediatamente tuttavia 5 secondi dopo la funzione viene passata mentre viene eseguita una richiamata .

Chiusure e callback

Molto spesso il motivo per cui le chiusure vengono create (incidentalmente, accidentalmente o deliberatamente) è la necessità di creare una richiamata. Per esempio:-

  function AlertThisLater(message, timeout) { function fn() { alert(message); } window.setTimeout(fn, timeout); } AlertThisLater("Hello, World!", 5000); 

(Si prega di leggere alcuni dei post collegati per cogliere le chiusure)

Viene creata una chiusura che contiene in parte il parametro del message , fn viene eseguita un po ‘di tempo dopo che è stata restituita la chiamata ad AlertThisLater , eppure ha ancora accesso al contenuto originale del message .