誰/何がの内容をに書く方法を決めるobject
のconsole
ですか?
オブジェクトリテラルの折りたたみ可能な表現を取得する場合もあれば、単にDOM
構造を出力する場合もあります。
このHTMLを考えると:
<div class="container">
<video src="low.mp4"></video>
<video src="high.mp4"></video>
<video src="mega.mp4"></video>
</div>
console
(WebKit / Firebug)を次のようにヒットした場合:
> var firstVideo = document.querySelector('video')
その後:
> firstVideo
それは戻ります:
<video src="low.mp4"></video>
一方、次のような別のオブジェクトがあるとします。
var guitar = { name:'Stratocaster', strings:6 }
コンソールに次のことを要求します。
> guitar
私たちに与える:
私は何度もこの行動に出くわしましたが、通常は他の方法で好奇心をかき消しました。今はちょっと苦痛なので、もう少し調べてみます。問題のオブジェクトが要素DOM
であり、検査官が私たちを助けているだけだからですか?
(私の例は(DOM
オブジェクトとリテラルを比較して)少し奇妙だと思いますが、問題を説明するための最も簡単で迅速な方法です。)
前の質問の情報を使用して、問題の各オブジェクトに関するもう少し情報を得ることができます。
video.constructor
戻り値:
HTMLVideoElementConstructor
一方:guitar.constructor
戻り値:
function Object() {
[native code]
}
なぜそれが重要なのですか?
次のような状況:
> firstVideo.parentElement
この要素を見て、そのプロパティを調べることはできません。単純に、各要素を個別に追跡する必要がある場合(つまり、firstVideo.parentElement.offsetHeight
)、これは非常に残念です。
それで、私の理解のギャップはどこにありますか?実際に何が起こっているのですか?