絵を見ると、さまざまなタイプの JavaScript 間の関係が理解できます
この絵は、『JavaScript 言語の本質とプログラミングの実践』の第 3 章の 184 ページからのものです。最近、第 2 版を改訂中です。この図は必要に応じて参照してください。
さらに、図で使用されている概念を追加します:
1. 組み込みオブジェクトとネイティブ (Naitve) オブジェクトの違いは、前者は常にエンジンの初期化フェーズ中に作成されることです。作成されたオブジェクトは後者のサブセットであり、後者には実行時に動的に作成されるオブジェクトが含まれています。
2. エンジン拡張オブジェクトは、それほど大きくないコレクションです。一般的に、それらがエンジンのネイティブ オブジェクトであることは比較的確実です (ただし、ECMA 仕様のネイティブ オブジェクトではありません)。
3. ホスト オブジェクトはエンジンのネイティブ オブジェクトではなく、ホスト フレームワークによって何らかのメカニズムを通じて JavaScript エンジンに登録されたオブジェクトです。
4. 一部のホストは、インターネットなど、提供するオブジェクト/コンストラクターを「ネイティブ オブジェクト」と呼ぶこともあります Explorer 7 は、以前のバージョンの「new ActiveXObject('Microsoft.XMLHTTP')」などのメソッドを通じて作成されたオブジェクトとは対照的に、ネイティブで提供される XMLHttpRequest() を呼び出します。この場合、読者は「ホストのネイティブ オブジェクト」と「エンジンのネイティブ オブジェクト」の違いに注意する必要があります。
転載元: http://www.w3cfuns.com/thread-5594427-1-1.html
JavaScript ローカル オブジェクト、組み込みオブジェクト、ホスト オブジェクト
ローカル オブジェクト (NEW が必要) )
ECMA-262 では、ネイティブ オブジェクトを「ホスト環境から独立した ECMAScript 実装によって提供されるオブジェクト」と定義しています。
オブジェクト、関数、配列、文字列、ブール値、数値、日付、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError、ActiveXObject (サーバー)、Enumerator (コレクション トラバーサル クラス)、RegExp (正規表現)
簡単に言えば、ローカル オブジェクトは ECMA-262 で定義されたクラス (参照型) であることがわかります。
組み込みオブジェクト (新しい直接参照はありません - MATH GLOBAL のみ)
ECMA-262 は、組み込みオブジェクトを「ECMAScript 実装によって提供され、ホスト環境から独立したすべてのオブジェクト」として定義しており、 ECMAScript プログラムの実行が開始されます。」これは、開発者が組み込みオブジェクトを明示的にインスタンス化する必要がなく、すでにインスタンス化されているということを意味します。
「ホスト環境からも独立」しています。定義によると、「組み込みオブジェクト」と「ローカルオブジェクト」の違いを区別するのは難しいようです。 ECMA-262 では、Global と Math という 2 つの組み込みオブジェクトのみが定義されています (これらはローカル オブジェクトでもあり、定義上、すべての組み込みオブジェクトはローカル オブジェクトです)。
だからおわかりいただけるでしょう。組み込みオブジェクトはローカル オブジェクトの一種です。含まれる 2 つのオブジェクトのうち、Math オブジェクトをよく使用しますが、この Global オブジェクトとは何でしょうか?
Global オブジェクトは、実際にはまったく存在しないため、ECMAScript の最も特殊なオブジェクトです。 ECMAScript には独立した関数はなく、すべての関数はオブジェクトのメソッドである必要があります。
isNaN()、parseInt()、parseFloat() メソッドと同様に、これらはすべて関数のように見えますが、実際にはすべて Global オブジェクトのメソッドです。 Global オブジェクトのメソッドはこれで終わりではありません。 Global オブジェクトの特定のメソッドとプロパティについては、興味のある学生はここを参照してください: JavaScript グローバル オブジェクト リファレンス マニュアル
ホスト オブジェクト (BOM DOM およびカスタム オブジェクト)
「ホスト オブジェクト」とは何ですか? ECMAScript の「ホスト」は、もちろん Web ページの実行環境、つまり「オペレーティング システム」と「ブラウザ」です。すべての非ネイティブ オブジェクトはホスト オブジェクト、つまり ECMAScript 実装のホスト環境によって提供されるオブジェクトです。
すべての BOM および DOM オブジェクトはホスト オブジェクトです。 「ホスト」環境ごとに異なるコンテンツが表示されるためです。実際、率直に言うと、未定義オブジェクトのほとんどは ECMAScript プログラムによって作成されたオブジェクトであるため、ECMAScript によって正式に定義されていないオブジェクトはホスト オブジェクトに属します。 TML DOM は、W3C 標準 (HTML Document Object Model、Document Object Model for HTML の略称) です。
HTML DOM は、HTML の標準オブジェクト セットと、HTML ドキュメントにアクセスして処理するための標準メソッドを定義します。
DOM を通じて、すべての HTML 要素と、それに含まれるテキストおよび属性にアクセスできます。コンテンツは変更および削除でき、新しい要素を作成することもできます。
DHTML DOM はプラットフォームやプログラミング言語に依存しません。 Java、JavaScript、VBScript などのあらゆるプログラミング言語で使用できます。
JavaScript を使用して DOM オブジェクトにアクセスし、操作する方法について詳しく知るには、以下のリンクをクリックしてください:
DOM オブジェクト:
Document は HTML ドキュメント全体を表し、ページ内のすべての要素にアクセスするために使用されます。アンカー代表 要素。 Area は、イメージ マップ内の 要素を表します。ベースは表す 要素。 Body は、イメージ マップの 要素を表します。ボタンが表す <ボタン>要素。 Event はイベントのステータスを表し、Form はイベントのステータスを表します。