JavaScriptが実行されている場合は、常にこのようなコードを実行するために「ピース単位」になります
VaRのFOO =関数(){ にconsole.log( 'foo1の')。 } のfoo(); // foo1の VARのFOO =関数(){ にconsole.log( 'foo2は')。 } のfoo(); // foo2は
関数foo(){ にconsole.log( 'foo1の')。 } のfoo(); // foo2は 関数foo(){ にconsole.log( 'foo2は')。 } のfoo(); // foo2は
我々はコードの一部を実行すると、このような可変リフト、機能、および改善の第二の例の最初の例として、「準備作業」、あろう。
変数があったように、このような行動のコードの実装準備作業は、機能が向上し、この時間は、実行コンテキスト(公式声明)と呼ばれたときに戻る、私は、コードの実装は、コードがES規格に準拠させるために変数と関数を分析することを理解します
実行コンテキストは、それをスタック?
JavaScriptエンジンは、実行コンテキストを管理するために実行コンテキストスタック(実行コンテキスト・スタック、ECS)を作成します
スタックは、データ構造は、最後のアウト、毎回、そのようにコードが最初に最後の外で実行されます。
以下の
関数fun3(){ にconsole.log( 'fun3') } 関数fun2(){ fun3()。 } 関数FUN1(){ fun2()。 } FUN1()。
//擬似コード // FUN1() ECStack.push(<FUN1> functionContext); // FUN1は、これまでfun2を呼び出すことが、またの実行コンテキスト・fun2作成するとして行ってきました ECStack.pushを(<fun2> functionContext); //こする、fun2をまたfun3呼ばれます! ECStack.push(<fun3> functionContext); //はfun3完了実行 ECStack.popを(); //はfun2完了実行 ECStack.popを(); //はFUN1完了実行 ECStack.popを(); //その後、次のJavaScriptを実行しますコードが、基礎となるECStack globalContextが常にあります