Scope & Closure


Scope


  • 変数アクセス規則の有効範囲

  • 変数とその値の有効範囲を指定します.

  • デフォルトでは、JSは独自のScopeを持ち、関数を宣言します.

  • ゾーン変数の優先度はグローバル変数より高い.

  • パラメータのない関数を呼び出す場合、->パラメータを含む関数を呼び出すとパラメータを書き込むことができません
    呼び出しと関数のみ.

  • グローバル変数が宣言され、関数で宣言されず、グローバル変数と同じ変数に値が割り当てられている場合、関数の変数はグローバル変数とみなされます.

  • スキャンが重なる場合は、内側スキャンから外側スキャンに進みます.
  • let message = "outer" 
    function shadowParameter(message) { 
    	message = 'Do not use parameters like this!'; 
        	return message;
    } 
    /* --> shadowParameter('parameter') 호출 시 
    전역변수 message를 사용하는게 아니라 인자로 들어간 'parameter'를 사용함 */

    Closure


  • これらの動作原理を表す外部関数の変数の内部関数または用語にアクセスできます.

  • Closer関数では、領域変数、外部関数の変数、およびグローバル変数にアクセスできます.

  • カードリング
  • 関数は、n個のパラメータを受け入れるのではなく、n個の関数を作成し、各関数にn個のパラメータを受け入れる方法
  • である.

  • モジュールモード
  • 変数をオシロスコープ内に配置する、関数外に露出しない方法
  • .
  • ジャワカプセル化法と似ている.
  • グローバル変数とウィンドウオブジェクト


  • グローバル範囲を表すオブジェクト

  • グローバル範囲で宣言された関数;varキーワードで宣言された変数をウィンドウオブジェクトに関連付ける

  • グローバル範囲内であまり変数を宣言しないでください