Execution Context


実行コンテキストは+thisバインド


コードの実行に必要な背景条件/環境
  • 同じ条件/環境を持つコードパッケージ
  • グローバル空間(大関数空間)
  • 関数
  • eval
  • module
  • context? コード背景、環境

    LexicalEnvironment

  • environmentRecord
  • 現在のコンテキストの実際のワード情報収集(護送)
  • 現在のコンテキストで宣言する識別子の情報
  • をコード順に収集する.
    頑張れ?実行コンテキストを作成するとすぐにできること!
    行方不明者の情報を引き上げる現象
  • outerEnvironmentReference
  • 外部環境リファレンス
    -現在のコンテキストに関連する外部識別子情報(scope chain=変数の有効範囲)
  • call stack


    現在実行中の関数と、次に呼び出される関数を制御するデータ構造.

    このバインディング


    実行コンテキストが表示されたときにバインドされます.
    this? 関数を実行するボディ
  • 関数を呼び出すと!呼び方によって違います!
    -グローバルスペース:window/global
  • 関数呼び出し時:window/global
  • メソッド呼び出し時メソッド呼び出しの主体」.前面
  • は本来関数であり、オブジェクトに対して「関連」操作を実行する場合は
  • です.
  • callbackを呼び出す場合:デフォルトでは、関数で呼び出すのと同じ
  • コンストラクタが呼び出された場合:inshatts
  • callback function


    授権制御権
    -制御権が移管されたオブジェクトが処理されます.

    エンクロージャ


    [1]内部関数とLexicalEnvironmentの組合せ
  • Aの語彙envrationと内部関数Bの組み合わせによって現れる特殊な現象.
    [2]Contact Aで宣言された変数を内部関数Bで参照する場合に発生する特殊な状況
    [3]内部関数の外部環境を参照外部関数の環境記録を参照する場合に発生する現象
  • .
    function outer(){
      let a = 1;
      function inner(){
        a++
      }
    	return inner
    }
    outer();
    Constraaint Aで宣言した変数aを参照する内部関数BをAの外部に渡すと、Aが終了してもAは消えない.