0

次のシナリオを使用して、Javascriptの識別子解決がどのように機能するかを誰か説明してください:

  1. グローバル関数が呼び出されます。
  2. ユーザー定義の JavaScript オブジェクト内の関数が呼び出されます。
4

1 に答える 1

0

これを理解するには、ECMA スクリプトのコンテキストとスコープを学習する必要があります。その中間にあるのは識別子ですか、それとも変数ですか?

通常、識別子はウィンドウ オブジェクトにタグ付けされます。String() と言いますが、実際には window.String() です。

通常、ページが読み込まれると、すべての変数と関数がウィンドウ オブジェクトにプロパティとして追加されます。ブラウザの場合、window オブジェクトがグローバル コンテキスト (GC) になります。したがって、グローバル関数(これは単なるメソッドであり、グローバル関数のようなものはありません)が呼び出されると、変数はグローバルコンテキストで検索されます。したがって、変数を識別します。

ただし、内部関数が内部にある関数がある場合、グローバル変数の識別は、最初に関数スコープでチェックされ、次にグローバルスコープでチェックされます。変数が関数変数の場合。次に、変数は常に関数実行コンテキスト(EC)に存在します

于 2012-09-14T07:59:12.477 に答える