Ho esaminato tutte le altre (eccellenti) risposte su SO (in particolare questo: How do JavaScript closures work?) ma volevo il tuo feedback sulla mia comprensione del concetto.Si tratta di un caso valido per la chiusura di javascript?
Capisco che un caso d'uso è quello di nascondere l'implementazione dei metodi privati dall'accesso pubblico.
L'altro che ci penso sta avendo come un generatore di fabbrica:
<script>
function carFactory(make) {
var m = make;
return { manufacture: function (model)
{console.log("A " + m + " " + model + " has been created");}
}
}
toyotaFactory = carFactory("toyota");
hondaFactory = carFactory("honda");
toyotaFactory.manufacture("corolla");
toyotaFactory.manufacture("corolla");
hondaFactory.manufacture("civic");
</script>
Questo uscite:
A toyota corolla has been create
A toyota corolla has been created
A honda civic has been created
Quindi pensi che il suo un caso d'uso valida per le chiusure (vale a dire la creazione di più fabbriche che utilizzano lo stesso codice base)? Oppure posso ottenere la stessa cosa usando qualcosa di molto meglio?
Si prega di notare che la domanda riguarda meno l'implementazione tecnica delle chiusure e altro su casi d'uso validi nella progettazione/sviluppo di applicazioni.
Grazie.
Mi sembra ok. – Almo
Sembra buono! Non vedo nulla di sbagliato in questo. – Linuxios
Tecnicamente, non hai bisogno di 'm' - puoi semplicemente usare' make' direttamente. – josh3736