Ich habe alle anderen (ausgezeichneten) Antworten auf SO durchgesehen (besonders das: How do JavaScript closures work?), aber ich wollte dein Feedback zu meinem Verständnis des Konzepts.Ist dies ein gültiger Anwendungsfall für das Schließen von JavaScript?
Ich verstehe, dass ein Anwendungsfall ist, die Implementierung von privaten Methoden vor öffentlichem Zugriff zu verbergen.
Die andere, die ich denke, wird es als ein Werk Generator:
<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>
Diese Ausgänge:
A toyota corolla has been create
A toyota corolla has been created
A honda civic has been created
So denken Sie, es ist ein gültiger Anwendungsfall für Verschlüsse (dh die Schaffung mehrere Fabriken mit der gleichen Code-Basis)? Oder kann ich dasselbe mit etwas viel besserem erreichen?
Bitte beachten Sie, dass es weniger um die technische Implementierung von Closures geht, als vielmehr um gültige Anwendungsfälle in der Anwendungsentwicklung.
Danke.
Sieht für mich ok aus. – Almo
Sieht gut aus! Ich sehe nichts falsch daran. – Linuxios
Technisch brauchen Sie nicht 'm' - Sie können' make' direkt verwenden. – josh3736