11

js のウィンドウ オブジェクトとドキュメント オブジェクトの違いを理解しようとしています。オンラインで調べましたが、まだ明確な理解がありません。私が知っていることから:ウィンドウはスーパードキュメントのようなもので、ドキュメントオブジェクトが含まれています。では、firefox を使用して localhost/test.js という 1 つのページを開く場合、browser:firefox がウィンドウ オブジェクトで、ファイル test.js がドキュメント オブジェクトであると言えますか?

4

4 に答える 4

32

windowオブジェクトは、現在のブラウジング コンテキストを表します。window.locationwindow.historywindow.screenwindow.status、または のようなものを保持しwindow.documentます。また、フレーミング セットアップに関する情報( 、framesparenttopプロパティself)があり、 、 、 、 、 などの重要なインターフェイスをapplicationCache保持XMLHttpRequestsetTimeoutescapeconsoleますlocalStorage。最後になりましたが、これは JavaScript のグローバル スコープとして機能します。つまり、すべてのグローバル変数はそのプロパティです。

対照的に、 ( window.)documentオブジェクトは、現在読み込まれている DOM を表しますwindow。これはその一部にすぎません。ドキュメントは、documentElement(通常は<html>)、formsコレクション、cookie文字列、そのlocation、またはそのなどの情報を保持しreadyStateます。また、や などのメソッドを使用して、別のインターフェイス (複数Documentが存在する場合があります。たとえば、ajax 経由で取得された XML ドキュメント)も実装します。getElementByIdaddEventListener

于 2013-06-21T03:44:50.783 に答える
22

非常に詳細な説明:こちらをお読みください

基本的に window はブラウザのウィンドウであり、 document はその中の HTML ページです。 ここに画像の説明を入力

于 2013-06-21T02:59:14.583 に答える
3

ブラウザーで実行される 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 ... 関数がありません。

于 2013-06-21T03:03:44.037 に答える
1

JavaScript アプリケーションには、値が定義されるスコープであるコンテキストがあります。ブラウザの場合の「ルート」または「グローバル」オブジェクトはwindow.

windowオブジェクトにはdocument、ドキュメントの表現を格納するというプロパティ (変数) があります。ドキュメントは、現在読み込まれているドキュメントのモデル表現 ( 、 など) を保持しtitleますanchors。オブジェクトはwindow、ドキュメントが表示されるブラウザ ウィンドウを表します。

また、関数にないスクリプトを使用する場合は、次のように定義します。

var x = 10;

実際に行ったことは、グローバル オブジェクトで変数を定義することです。ブラウザの場合、これはwindow.

したがってwindow.x、値は 10 になります。

于 2013-06-21T03:21:03.777 に答える