🥇 エンクロージャとは?


📢 テキストリンク
  • "Master the javascript interview: what is a closure?" by Eric Elliott
  • この文章はEric Elliottの「Master the JavaScriptインタビュー:a closureとは何ですか?」『中華人民共和国労働人民共和国労働法』の文字をもとに編纂された.
    😁 4千万元の価値がある
  • 米国では、青少年と青少年開発者の価格が4千万ウォンほど違う.
  • の標準的なインタビュー質問の中で、最も代表的なのはCloserです.
  • 😎 エンクロージャ
  • モジュールは、「語彙環境」への参照値を含む様々な関数を集合することを意味する.
  • つまり、モジュールがあるため、内部関数から外部関数にアクセスできます.
  • JavaScriptでは、関数を生成するたびにモジュールが生成されます.
  • エンクロージャを使用するには、他の関数の内部関数を使用して新しい関数を定義し、それを露出します.
  • ここで露光は、他の関数に返されるか、または渡されるパラメータを意味する.
  • このように、内部関数は、外部関数が返された後でも、外部関数の変数にアクセスすることができるようになった.
  • 🤔 データの非表示と保護の目的
  • エンクロージャは、通常、データを非表示にするために使用されます.
  • Data privacy is an essential property that helps us program to an interface, not an implementation.
  • モジュールを使用すると、非表示の変数は外部関数の範囲内にのみ表示されます.
  • であり、これは、事前定義された方法以外の方法では処理できない.
  • 🤩 サンプルコード
    👨🏻 例1
    const getSecret = (secret) => {
      return {
        get: () => secret
      };
    };
    
    const expected = 1;
    const obj = getSecret(1);
    const actual = obj.get();
    console.log(actual, expected);
    👩🏻 例2
    const partialApply = (fn, ...fixedArgs) => {
      return function (...remainingArgs) {
        return fn.apply(this, fixedArgs.concat(remainingArgs));
      };
    };
    
    const add = (a, b) => a + b;
    const add10 = partialApply(add, 10);
    const actual = add10(5);
    const expected = 15;
    console.log(actual, expected)
    });