0

JavaScriptエンジンの動作をコンパイル段階(レキシカルスコープ図全体を設定する段階)と実行段階(コンパイル段階でレキシカルスコープ設定を使ってコードを実行する段階)に分けると、関数式のスコープはいつ設定されるのでしょうか。コンパイル中ですか、それとも実行/解釈段階ですか?

また、関数式のスコープが設定されるたびに、親スコープは常にグローバル スコープになりますよね? (私はこれが発生するコードを見てきましたが、確認したいだけです)。

4

3 に答える 3

2

関数のスコープ (関数式を含む) は、関数の作成時に設定されます。これは、解析フェーズではなく、実行フェーズで行われます。

于 2016-03-26T21:40:41.700 に答える
0

スコープを関数の階層と考える方が簡単です。最初の関数 a() を定義している場合、その親スコープはグローバル スコープになります。a() で定義された各関数は、a() のスコープとグローバル スコープの両方にアクセスできます。関数ツリーのすべての子孫は、その親スコープにアクセスでき、ルートはグローバル スコープです。

于 2016-03-26T21:31:37.207 に答える