質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

828閲覧

javascript 初心者 document.querySelector('')について

quoodragon

総合スコア7

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/01/26 11:57

編集2020/01/26 13:57

初心者です

document.querySelector('') というコードが何故

document.document.querySelector('') とならないのか分りません

本にはdocument.querySelector('') のdocument.の部分がプロパティ、querySelector('')の部分がDocumentオブジェクトのメソッドと書かれていました
DocumentオブジェクトがWindowsオブジェクトのdocumentプロパティに入っているのは知っています

MDNサイトには
プロパティは objectName.propertyName
メソッドは  object.methodName()

と書かれていたので何故document.document.querySelector('')にならないか分かりません

よろしくお願いします

説明が下手だったかもしれないので追記します
querySelectorメソッドはwindowオブジェクトの中のdocumentプロパティの中のdocumentオブジェクトの中にあるのでコードに書く時、

document.document.querySelector('')   最初のwindowは省略できるのでこうなると思いました
でも正解はdocument.querySelector('')なので何故メソッド側のdocumentがないのかわかりません

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/01/26 12:02

>document.document. なぜそう思うのか分かりません。「本」って書籍名は何なのでしょうか。 本当にdocument.document.・・・となるように書いてあるのでしたら間違いなので出版元か著者に指摘しなければなりません。
miyabi_takatsuk

2020/01/27 02:43 編集

もしかして、メソッドは、オブジェクトの中に必ず入るもの、と勘違いされてません? JavaScriptにおいては、メソッドもオブジェクトの一つです。 また、documentはオブジェクトであるかつ、windowオブジェクトのプロパティのため、 メソッドを持つことができます。 なので、querySelectorメソッドを持っていますが。 いや、"objectName"と"object"と表記が違うため混乱されているのでしょうかね?
miyabi_takatsuk

2020/01/27 02:49

その引用元のMDNの記事のリンクを掲示してください。 質問は修正できます。 少なくとも、 オブジェクトに関して記載があった、 https://developer.mozilla.org/ja/docs/Learn/JavaScript/Objects/Basics には、質問者さんのおっしゃる、 > MDNサイトには > プロパティは objectName.propertyName > メソッドは  object.methodName() のような記載はまったくありませんでしたので。
guest

回答2

0

document.の部分がプロパティ

windowのプロパティです。window.document.querySelectorと書いても動きます。

投稿2020/01/26 11:59

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

オブジェクトでの作業 - JavaScript | MDN
を参考にされて、

MDNサイトには
プロパティは objectName.propertyName
メソッドは  object.methodName()

というように混乱されたとエスパーして回答いたします。

おそらく、記事内の中段記載の、
object.methodname(params);
を見て、objectNameと、objectは別物というか、親子関係にあるのでは?と勘違いされたのではないでしょうか?
ですが、ここでは、オブジェクト内のメソッドの呼び出し方の一例を記載しているだけであって、
objectNameobject同じ扱いです。
(ただし、"同じ物"を指しているという意味ではない。object.methodname(params);は、オブジェクトのメソッドの呼び出し方の一例を記載しているに過ぎないということ。)

つまり、オブジェクトはオブジェクトであって、今回の質問の、
documentwindowもオブジェクトです。
そして、documentは、windowのプロパティであると同時に、オブジェクトでもあります。

JavaScript のオブジェクトは、自身に関連付けられたプロパティを持ちます。オブジェクトのプロパティは、オブジェクトに関連付けられている変数と捉えることができます。オブジェクトのプロパティは、オブジェクトに属するものという点を除けば、基本的に通常の JavaScript 変数と同じようなものです。オブジェクトのプロパティは、オブジェクトの特性を定義します。オブジェクトのプロパティには、単純なドット表記でアクセスします。

ここをもっと噛み砕いて理解する必要があるかと思います。
プロパティには、値も入れられれば、オブジェクトも入れられます。
また、JavaScriptにおいては、methodはオブジェクトの一種という扱いでもあります。
つまりは、参考にされた書籍の記載で混乱されたのかと思いますが、
プロパティ = オブジェクト = メソッド
という状況が成り立つ場合もあるということです。
よって、今回の質問に関しては、
documentオブジェクト自体が、querySelector()というメソッドオブジェクト(documentのプロパティとして)を持っているので、
document.document.querySelector()とはならず、
document.querySelector()となるということです。

投稿2020/01/27 03:16

編集2020/01/27 03:38
miyabi_takatsuk

総合スコア9528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quoodragon

2020/01/27 13:29

まだ完全には理解できてないですが詳しい回答ありがとうございました ベストアンサーにさせてもらいました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問