He revisado todas las otras (excelentes) respuestas en SO (especialmente esto: How do JavaScript closures work?) pero quería su opinión sobre mi comprensión del concepto.¿Es este un caso de uso válido para el cierre de JavaScript?
Entiendo que un caso de uso es ocultar la implementación de métodos privados del acceso público.
El otro que lo pienso es tener como un generador de fábrica:
<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>
Este salidas:
A toyota corolla has been create
A toyota corolla has been created
A honda civic has been created
Así que crees que es un caso de uso válido para el cierre (es decir, la creación de fábricas múltiples que usan la misma base de código)? ¿O puedo lograr lo mismo usando algo mucho mejor?
Tenga en cuenta que la pregunta es menos sobre la implementación técnica de cierres y más sobre casos de uso válidos en el diseño/desarrollo de aplicaciones.
Gracias.
Me parece bien. – Almo
¡Se ve bien! No veo nada de malo en eso. – Linuxios
Técnicamente, no necesita 'm' - simplemente puede usar' make' directamente. – josh3736