など

2017-04-12 3 views
1

私はJavascriptを学んでいる、と私はちょうどこれらのメソッドはどこから来た完全に理解したい:など

  • のdocument.getElementById
  • document.querySelector 。 。 。
  • など

私は彼らが何をすべきか理解し、その使用方法。私は "文書"が主なオブジェクトであることを知っています。オブジェクトのキーを使用して値にアクセスするには、 "ドット"表記または "['']"を使用できます。しかし、私はChromeのコンソールに入力するとDocumentオブジェクトのgetElementIDが見つからないようです:console.dir(ドキュメント)

Pythonには特別なメソッドがありますが、これらの特別なメソッドはありますか?だから彼らは具体的にDocumentオブジェクトの一部である必要がありますか?

これは愚かな質問かもしれないが、私はすべてがどこから来ているかを完全に理解したいと思う。みんなありがとう、私は助けていただきありがとうございます。

よろしく、

アンソニー

答えて

4

documentオブジェクトは、windowオブジェクトの子オブジェクトです。これらはJavaScriptの「ブラウザ組み込みグローバル」と見なされます。

ウィンドウオブジェクトの子プロパティは、console.log(document)のように直接アクセスできますが、同じことであるconsole.log(window.document)でも使用できます。

getElementByIdなどのメソッドは、documentsのプロトタイプの下に存在します。これは、console.dir(Document.prototype)を使用して表示できます。

あなたがここにプロトタイプについての詳細を読むことができます - https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype

うまくいけば、あなたの質問に答えます!

1

使用することをおアナロジーは、Pythonの標準ライブラリです。 (私はPythonに慣れていないので、何か間違っている場合は、私を修正してください)。

Pythonのインストールには、Pythonランタイムにバンドルされているオブジェクトのコレクションとそれに対応するメソッドのコレクションが付属しています。

同様に、ブラウザ環境で実行している場合、Javascriptには「標準ライブラリ」(Document Object ModelまたはDOM)もあります。これは、対応するメソッドとともに、JavaScriptランタイムにバンドルされているオブジェクトのコレクションです。これらのオブジェクトの一部には、window,locationおよびdocumentが含まれます。そして、これらのバンドルされたオブジェクトのそれぞれには、いくつかのメソッドがアタッチされています。だから、あなたの例では、バンドルさdocumentオブジェクトが含むいくつかの方法を、持っているあなたのgetElementByIdなど

あなたは、彼らがdocumentオブジェクト上に存在しないという意味ではありませんconsole.dirを行うとき、彼らは見えないという事実。 console.dirは単に出力からそれらを除外しているだけです(なぜ?私は言うことができません)。

しかし、documentオブジェクトのさまざまなプロパティーがconsole.logであれば、それらはすべてそこにあることがわかります。

1

あなたはドキュメントがデベロッパーツールでそのようにオブジェクトを検査する場合は、あなたの代わりにこれを行う必要があります。documentDocumentの違いを見るために

console.dir(Document.prototype) 

、一般的には:

console.dir(document) 
console.dir(Document) 

あるいは、その違いをより明確にするのに役立つかもしれません。

console.dir(document.constructor) 
console.dir(Document.constructor) 
2

これらのメソッドは__proto__の内部に存在し、documentオブジェクトのprototypeから離れています。