Rumah > hujung hadapan web > tutorial js > Mengapa jQuery Menggunakan `(function(window, undefined){...})(window);`?

Mengapa jQuery Menggunakan `(function(window, undefined){...})(window);`?

Patricia Arquette
Lepaskan: 2024-12-11 02:45:09
asal
750 orang telah melayarinya

Why Does jQuery Use `(function(window, undefined){...})(window);`?

Meneroka Sintaks Pengekapsulan JavaScript dalam jQuery

Apabila memeriksa kod sumber jQuery 1.4, seseorang mungkin menghadapi sintaks pengekapsulan berikut:

(function( window, undefined ) {

  //All the JQuery code here 
  ...

})(window);
Salin selepas log masuk

Sintaks ini menimbulkan persoalan tentang tujuan pembolehubah "undefined" dan penampilan berulang "window."

Maksud "undefined"

Pembolehubah "undefined" dalam kurungan bukan kata kunci simpanan . Sebaliknya, ia adalah pembolehubah biasa yang boleh diberikan nilai baharu. Dalam kes ini, jQuery menetapkan "undefined" sama dengan "undefined" untuk memastikan pembolehubah global "undefined" kekal benar-benar tidak ditentukan.

Kepentingan "window"

Pembolehubah "tetingkap" merujuk kepada objek JavaScript global. Dengan menghantar "tetingkap" sebagai hujah kepada fungsi tanpa nama, jQuery mencipta rujukan tempatan kepada objek global. Rujukan setempat ini meningkatkan prestasi.

Apabila JavaScript mencari pembolehubah, ia mula-mula menyemak skop setempat. Jika pembolehubah tidak ditemui secara setempat, carian diteruskan ke skop seterusnya, dan seterusnya, sehingga skop global dicapai. Dengan mencipta rujukan setempat kepada objek global, JavaScript boleh mencari "tetingkap" dengan cepat tanpa perlu mencari melalui semua skop.

Pengoptimuman ini, seperti yang diterangkan oleh Nicholas C. Zakas dalam artikelnya "Speed ​​Up Your JavaScript ," meningkatkan kelajuan pelaksanaan perpustakaan jQuery dengan ketara.

Atas ialah kandungan terperinci Mengapa jQuery Menggunakan `(function(window, undefined){...})(window);`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan