js のウィンドウ オブジェクトとドキュメント オブジェクトの違いを理解しようとしています。オンラインで調べましたが、まだ明確な理解がありません。私が知っていることから:ウィンドウはスーパードキュメントのようなもので、ドキュメントオブジェクトが含まれています。では、firefox を使用して localhost/test.js という 1 つのページを開く場合、browser:firefox がウィンドウ オブジェクトで、ファイル test.js がドキュメント オブジェクトであると言えますか?
4 に答える
window
オブジェクトは、現在のブラウジング コンテキストを表します。window.location
、window.history
、window.screen
、window.status
、または のようなものを保持しwindow.document
ます。また、フレーミング セットアップに関する情報( 、frames
、parent
、top
プロパティself
)があり、 、 、 、 、 などの重要なインターフェイスをapplicationCache
保持XMLHttpRequest
しsetTimeout
てescape
いconsole
ますlocalStorage
。最後になりましたが、これは JavaScript のグローバル スコープとして機能します。つまり、すべてのグローバル変数はそのプロパティです。
対照的に、 ( window.
)document
オブジェクトは、現在読み込まれている DOM を表しますwindow
。これはその一部にすぎません。ドキュメントは、documentElement
(通常は<html>
)、forms
コレクション、cookie
文字列、そのlocation
、またはそのなどの情報を保持しreadyState
ます。また、や などのメソッドを使用して、別のインターフェイス (複数Document
のが存在する場合があります。たとえば、ajax 経由で取得された XML ドキュメント)も実装します。getElementById
addEventListener
非常に詳細な説明:こちらをお読みください
基本的に window はブラウザのウィンドウであり、 document はその中の HTML ページです。
ブラウザーで実行される JavaScript には、最上位として Window があります。これは、グローバル変数がウィンドウのプロパティになることを意味します:
// this code is not inside a function
var global1=22;
function test(){
var local=88;
window.global2=99;
console.log(local);//logs 88 because
// local is available within the body
// of this function
console.log(global1);//logs 22
}
console.log(typeof local);//logs undefined becaue were
// outside the funciton body
test();
console.log(global2);//logs 99 because we added
// global2 as a property of window
したがって、window にはすべてのグローバル オブジェクトが含まれます。つまり、parseInt は window.parseInt と同じことを行います。
ウィンドウ自体も含まれているため、次のようになります。
window===window.window.window;//is true
ウィンドウは Html 要素ではなく、ドキュメントであるため、ウィンドウには getElementById、children、childNodes ... 関数がありません。
JavaScript アプリケーションには、値が定義されるスコープであるコンテキストがあります。ブラウザの場合の「ルート」または「グローバル」オブジェクトはwindow
.
window
オブジェクトにはdocument
、ドキュメントの表現を格納するというプロパティ (変数) があります。ドキュメントは、現在読み込まれているドキュメントのモデル表現 ( 、 など) を保持しtitle
ますanchors
。オブジェクトはwindow
、ドキュメントが表示されるブラウザ ウィンドウを表します。
また、関数にないスクリプトを使用する場合は、次のように定義します。
var x = 10;
実際に行ったことは、グローバル オブジェクトで変数を定義することです。ブラウザの場合、これはwindow
.
したがってwindow.x
、値は 10 になります。