DOMオブジェクトは通常のJavascriptオブジェクトですか?そうでない場合、それらは何ですか?
5 に答える
DOMオブジェクトはレギュラーJavascriptオブジェクトですか?そうでない場合、それらは何ですか?
いいえ、それらは「ホストオブジェクト」です。必ずしもネイティブJavaScriptオブジェクトと同じルールで再生されるとは限りません。
それらはある意味でオブジェクトですが、ホスト環境によって追加され、ECMAScript仕様の一部ではありません。
たとえば、expandoプロパティを受け入れる必要があるものはないと思います。prototype
または、関数の場合、アクセス可能で拡張可能なプロパティが必要かどうかはわかりません。
Function.prototype
また、関数には、、などの一般的なメソッドがある場合とない場合が.call()
あり.apply()
ます。
ルールは、ECMAScript仕様で定義されているオブジェクトのルールよりもはるかに緩いため、すべての場合で必ずしも同じ動作に依存できるとは限りません。
これは、 Mozilla DevelopmentNetworkのDocumnetObject Model(DOM)の説明です。
ドキュメントオブジェクトモデルは、HTMLおよびXMLドキュメント用のAPIです。ドキュメントの構造表現を提供し、コンテンツと視覚的表現を変更できるようにします。基本的に、Webページをスクリプトまたはプログラミング言語に接続します。
Web開発者がWebページを操作および作成するために使用できるすべてのプロパティ、メソッド、およびイベントは、オブジェクトに編成されます(たとえば、ドキュメント自体を表すドキュメントオブジェクト、HTMLテーブル要素を表すテーブルオブジェクトなど)。 。これらのオブジェクトには、最新のWebブラウザーのスクリプト言語を介してアクセスできます。
DOMは、ほとんどの場合JavaScriptと組み合わせて使用されます。つまり、コードはJavaScriptで記述されていますが、DOMを使用してWebページとその要素にアクセスします。ただし、DOMは特定のプログラミング言語から独立するように設計されているため、ドキュメントの構造表現を単一の一貫したAPIから利用できます。このサイト全体でJavaScriptに焦点を当てていますが、DOMの実装は任意の言語用に構築できます。
World Wide Web Consortiumは、W3CDOMと呼ばれるDOMの標準を確立します。これで、最も重要なブラウザが正しく実装され、強力なクロスブラウザアプリケーションが有効になります。
それらはタイプですHTMLElement
はい、そうです:
> typeof document.body
"object"
> document.body instanceof Object
true
DOMはAPIであるため、ウィンドウ「名前空間」にアタッチされた一連の事前定義された「オブジェクト」。HTMLElementsにすることもできますが、それだけでなく、javascriptコアの一部でもありません。つまり、javascriptコアとDOMがあり、他のAPIを使用できます。