イベントターゲットについて、お聞きしたいことがあります。
こちらの記事やこちらの記事を読んでいたのですが、Windowオブジェクトのdocumentプロパティは「Document」オブジェクトを参照すると記載があります。
ここで疑問なのですが、「document」プロパティはWindowオブジェクトのプロパティですが、Documentオブジェクトを参照しているというのは、Documentオブジェクトを継承しているということなのでしょうか?
どのように参照しているのかといった部分が分らなかった為、こちらの部分についてアドバイス頂けましたら幸いです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
[[Prototype]]
ここで疑問なのですが、「document」プロパティはWindowオブジェクトのプロパティですが、Documentオブジェクトを参照しているというのは、Documentオブジェクトを継承しているということなのでしょうか?
疑問に思った事は、確かめましょう。
JavaScript
1console.dir(window.document); 2console.dir(Object.getPrototypeOf(window.document)); 3console.dir(Object.getPrototypeOf(Object.getPrototypeOf(window.document)));
Content-Type
Content-Type
によって、HTML Parser, XML Parserがスイッチします。
Content-Type: text/html Content-Type: application/xhtml+xml
User agents must use the parsing rules described in this section to generate the DOM trees from text/html resources. Together, these rules define what is referred to as the HTML parser.
An XML parser is either associated with a Document object when it is created, or creates one implicitly.
Interface Window
For historical reasons, Window objects must also have a writable, configurable, non-enumerable property named HTMLDocument whose value is the Document interface object.
Interface Document
A document is said to be an XML document if its type is "xml", and an HTML document otherwise. Whether a document is an HTML document or an XML document affects the behavior of certain APIs.
Interface HTMLDocument
For the purposes of web development, you can generally think of HTMLDocument as an alias for Document, upon which HTMLDocument is based. You can find documentation for the members of HTMLDocument under the Document interface.
Re: aae_11 さん
投稿2020/05/10 02:58
編集2020/05/10 03:02総合スコア18189
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/10 03:23 編集
2020/05/10 04:07
2020/05/10 12:37 編集
0
ここで疑問なのですが、「document」プロパティはWindowオブジェクトのプロパティですが、Documentオブジェクトを参照しているというのは、Documentオブジェクトを継承しているということなのでしょうか?
いいえ。window.document
はDocumentクラスのインスタンスです。
(javascriptにはクラスベースではないので正確には違いますが)
どのように参照しているのかといった部分が分らなかった為、こちらの部分についてアドバイス頂けましたら幸いです。
ここで言う参照はプログラム用語です。以下リンクを確認してください。
Object reference (オブジェクト参照) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN
投稿2020/05/10 02:01
総合スコア4524
0
オブジェクト指向言語では常に抽象化された機能面を考えますが、i-sa, has-a の違いを区別する必要があります。
「継承」については MDN の各ページに矩形と矢線で繋がった関係図が示されていますので、これを参考にすると良いと思います。Document の場合、EventTarget、 Node、 Document の順に継承しています(抽象化された機能面がそのまま拡張されるイメージ:is-a)
また、Window の3段落目に概要が説明されています。
グローバルで使用可能であることが必要な、さまざまなアイテムを含むのに適した場所
Windowオブジェクトはブラウザのページ表示部においては global オブジェクトです(Workerなど、別の事例もあるので、詳細は割愛します)。
ですので、Window と Document とは 「別の機能だけど、1つのWindowには 1つのDocument」というイメージの has-a の関係性になります。
投稿2020/05/10 16:03
編集2020/05/10 16:08総合スコア5434
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。