Pertama -tama lihat kode sumber kami.
Salinan kode adalah sebagai berikut:
<! Doctype html>
<Html>
<head>
<meta charset = "UTF-8" />
<title> Pemahaman mendalam tentang JavaScript </iteme>
<type skrip = "Text/JavaScript" charset = "UTF-8">
Console.log (ini);
</script>
</head>
<body>
<H1> Pemahaman mendalam tentang JavaScript </h1>
</body>
</html>
Kami tahu bahwa jika Anda membuka halaman ini melalui browser, skrip yang terkandung dalam tag <script> </cript> akan dieksekusi.
Lalu mari kita lihat Console.log (ini); Untuk siapa hal ini?
Di Google Chrome kita melihat:
Di Mozilla Firefox kita melihat:
Kita semua melihat jendela output, jadi apakah jendela dan jendela sama?
Selanjutnya tes kami
Salinan kode adalah sebagai berikut:
<type skrip = "Text/JavaScript" charset = "UTF-8">
Console.log (ini);
console.log ('this == window?', this == window);
</script>
Jalankan kode dan output jendela ini ==? Benar, mana yang berarti jendela == jendela. Apakah ini masalahnya?
Untuk mengetahui hubungan di antara mereka, kami terus menguji
Salinan kode adalah sebagai berikut:
<type skrip = "Text/JavaScript" charset = "UTF-8">
console.log ('this =', this);
console.log ('this == window?', this == window);
console.log ('window =', window);
console.log ('window =', window)
console.log ('window == window?', window == window)
</script>
Lihat output browser:
Google Chrome:
Mozilla Firefox:
Dari hasil output yang dapat kami deduksi,
Salinan kode adalah sebagai berikut:
Ini adalah objek jendela;
Ini juga sama dengan objek jendela;
Jendela juga menunjuk ke objek jendela;
Jendela adalah menunjuk ke jendela {}, yang merupakan objek yang disediakan oleh browser;
Jendela tidak sama dengan jendela;
Mengapa ini terjadi?
Kami melihat struktur objek jendela di konsol browser;
Ternyata objek jendela berisi beberapa API yang diimplementasikan oleh produsen browser, seperti Sesi Standar di HTML5;
Ini juga memiliki properti jendela, dan nilai properti ini menunjuk ke objek jendela;
Pemahaman saya: Objek jendela melayani produsen browser. Kami tidak dapat secara langsung memanipulasi sifat -sifat objek jendela. API jendela yang baru ditambahkan akan tercermin dalam objek jendela;
Properti yang kami operasikan di jendela akan tercermin dalam objek jendela.
Misalnya, tentukan jendela variabel global.a = 'aaa';
Semua objek dalam JavaScript ada di lingkungan yang berjalan, yang juga merupakan objek, yang disebut "objek tingkat atas". Ini berarti bahwa semua objek dalam JavaScript adalah bawahan dari "objek tingkat atas". Lingkungan operasi yang berbeda memiliki "objek tingkat atas" yang berbeda. Di lingkungan browser, objek tingkat atas ini adalah objek jendela.
Semua variabel global lingkungan browser adalah sifat objek jendela.
Windows dapat dipahami sebagai lingkungan konteks JavaScriptContext.