定義を見てみましょう:
クロージャ
いわゆる「クロージャ」は、多くの変数とこれらの変数にバインドされた環境を持つ式 (通常は関数) を指します。したがって、これらの変数は式の部分でもあります。式。
これは、JavaScript のクロージャがコンテキストを含む関数であることを示しています。つまり、この関数の基礎は、それが置かれている環境にあるということです。これは、線形代数ではどうでしょうか。気持ちは?
別の観点から見ると、クロージャの機能は OO を達成することです。 JavaScript には C のような public、private、protect の属性マークがないため、クラスを構築するのが困難です。 「クラスは動作を伴うデータであり、クロージャはデータを伴う動作です。」 JavaScript では、クラスの定義を関数の定義に置き換え、setter/getter メソッドをクロージャに置き換えます。ライブコードの一部を見てください: