私はSOに関する他のすべての(優れた)回答(特にこれ:JavaScriptクロージャはどのように機能するのですか?)を調べましたが、概念の理解についてフィードバックを求めました。
1つのユースケースは、プライベートメソッドの実装をパブリックアクセスから隠すことであることを理解しています。
私が考えるもう1つは、ファクトリージェネレーターとして使用することです。
<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>
これは以下を出力します:
A toyota corolla has been create
A toyota corolla has been created
A honda civic has been created
それで、それはクロージャの有効なユースケースだと思いますか(つまり、同じコードベースを使用して複数のファクトリを作成する)?それとも、もっと良いものを使って同じことを達成できますか?
問題は、クロージャの技術的な実装ではなく、アプリケーションの設計/開発における有効なユースケースに関するものであることに注意してください。
ありがとう。