Rumah hujung hadapan web tutorial js jQuery constructor init parameter analysis_jquery

jQuery constructor init parameter analysis_jquery

May 16, 2016 pm 03:59 PM
jquery Pembina

Dalam esei terakhir saya, saya menganalisis pembina jQuery Terdapat kaedah prototaip init dalam objek jQuery, yang merupakan pembina sebenar Objek prototaip init mengekalkan hubungan rujukan dengan objek prototaip jQuery itu Contoh boleh memanggil kaedah prototaip jQuery secara normal, sama seperti ia adalah contoh jQuery. Mari kita lihat bagaimana init pembina di belakang tabir ditulis:

init: function( selector, context, rootjQuery ) {

...

}

Salin selepas log masuk

Anda boleh melihat bahawa kaedah ini menerima 3 parameter, dua parameter pertama diluluskan oleh kaedah jQuery

var jQuery = function( selector, context ) {

// The jQuery object is actually just the init constructor 'enhanced'

return new jQuery.fn.init( selector, context, rootjQuery );

},

Salin selepas log masuk

Pemilih pada dasarnya boleh memasukkan sebarang nilai, tetapi tidak semua nilai bermakna Hanya tidak ditentukan, elemen DOM, rentetan, fungsi, objek jQuery dan objek JavaScript biasa Parameter ini biasanya diisi tetapi tidak ralat akan dilaporkan jika anda tidak mengisinya

Salin kod Kod adalah seperti berikut:

console.log($());
//[pembina: fungsi, init: fungsi, pemilih: "", jquery: "1.7.1", saiz: fungsi…]

Konteks boleh dihantar sebagai konteks pelaksanaan atau skop pelaksanaan, atau ia boleh dihantar dalam salah satu elemen DOM, objek jQuery dan objek JavaScript biasa

Parameter rootjQuery: objek jQuery yang mengandungi objek dokumen, digunakan apabila document.getElementById() gagal ditemui, pemilih ialah ungkapan pemilih dan tiada konteks ditentukan, dan pemilih ialah fungsi, ia sebenarnya $(dokumen).

Perkara berikut dibahagikan kepada 12 situasi dan dibincangkan satu persatu mengikut parameter yang berbeza

1.pemilih boleh ditukar kepada palsu

// Handle $(""), $(null), or $(undefined)

if ( !selector ) {

return this;

}

Salin selepas log masuk

Komen dalam kod sumber telah ditulis dengan sangat jelas Dalam tiga situasi ini, kembalikan terus tanpa sebarang pemprosesan

2. Pemilih parameter ialah elemen DOM

Contohnya: $(dokumen)

// Handle $(DOMElement)

if ( selector.nodeType ) {

this.context = this[0] = selector;

this.length = 1;

return this;

}

Salin selepas log masuk

Selagi ia adalah elemen dom, ia mesti mempunyai jenis nod, dan kemudian tukar nod ini menjadi elemen pertama objek jquery dan tetapkan ia kepada konteks Atribut panjang ialah atribut prototaip jQuery dan lalai kepada 0

// Panjang lalai objek jQuery ialah 0

panjang: 0,
Selepas terdapat elemen di sini, tukar atribut panjang kepada 1. Pemulangan operasi ini menjadikan hasil pelaksanaan fungsi masih menjadi objek jQuery, supaya panggilan berantai seperti $(document).each() boleh dilaksanakan. Objek akhir yang diperoleh adalah serupa dengan {0:document,context:document,length:1....}. Malah, semua situasi akhirnya akan menjadi objek dalam bentuk ini, kecuali untuk sifat dan kaedah prototaip jQuery disusun mengikut urutan dengan angka Arab, jadi kita boleh menggunakan borang $(selector)[0] dan bukannya $(selector).get(0) untuk mendapatkan objek DOM. Contohnya:

<!doctype html>

<html>

  <head>

   <title></title>

  </head>

  <body>

    <div></div>

    <div></div>

    <div></div>

  </body>

  <script src='jquery-1.7.1.js'></script>

  <script>

   console.log($('div'));

/*[div, div, div, prevObject: jQuery.fn.jQuery.init[1], context: document, selector: "div", constructor: function, init: function…]

0: div
1: div
2: div
context: document
length: 3
prevObject: jQuery.fn.jQuery.init[1]__proto__: jQuery[0]
selector: "div"
.
*/
  </script>

</html>


Salin selepas log masuk

3. Parameter ialah rentetan khas "badan"

Memandangkan hanya terdapat satu elemen badan dalam objek dokumen, ia disenaraikan secara berasingan untuk diproses

// The body element only exists once, optimize finding it

if ( selector === "body" && !context && document.body ) {

this.context = document;

this[0] = document.body;

this.selector = selector;

this.length = 1;

return this;

}

Salin selepas log masuk

Terdapat tiga syarat di sini yang mesti dipenuhi pada masa yang sama Saya tidak begitu memahami syarat kedua bahawa mesti tiada konteks Kaedah penulisan yang kelihatan seperti $('body',document) juga "diabaikan" oleh situasi ini

 console.log($('body',document));

 /*

 jQuery.fn.jQuery.init[1]

0: body

context: document

length: 1

prevObject: jQuery.fn.jQuery.init[1]

selector: "body"

__proto__: jQuery[0]

*/

Salin selepas log masuk
Walaupun hasilnya sama dengan $('body'), ia dianggap sebagai dua situasi. Ini mungkin kerana badan hanya mempunyai satu konteks dan ia hanya boleh menjadi dokumen. anda perlu menilai sama ada konteksnya adalah dokumen. Syarat ketiga ialah memastikan dokumen.badan mesti wujud Jadi dalam keadaan apakah dua syarat pertama akan dipenuhi tetapi dokumen.badan tidak wujud? Yang pertama ialah apabila kod js dimuatkan sebelum kod html, ini adalah kesilapan yang sering dilakukan oleh pemula Biasanya kita perlu menulis:

$(fungsi(){...})

atau

$(dokumen).sedia(fungsi(){...})
Sebenarnya, kedua-dua ini adalah sama dan memanggil kaedah yang sama DOM akan memuatkan bahagian ini dan menganalisisnya kemudian. Untuk ini kita boleh membuat kod html ujian seperti berikut:

<!doctype html>
 
<html>
 
  <head>
 
   <title></title>
 
    <script src='jquery-1.7.1.js'></script>
 
   <script>
 
       $('body')
 
  </script>
 
  </head>
 
  <body>
 
    <div></div>
 
    <div></div>
 
    <div></div>
 
  </body>
 
</html>
Salin selepas log masuk
Kemudian keluarkan pemilih, konteks dan document.body dalam kod sumber jQuery


console.log(selector+context+document.body);

// The body element only exists once, optimize finding it

if ( selector === "body" && !context && document.body ) {

this.context = document;

this[0] = document.body;

this.selector = selector;

this.length = 1;

return this;

}

Salin selepas log masuk
Walaupun kami hanya menulis satu, ia sebenarnya telah dilaksanakan empat kali Hanya kali terakhir adalah hasil selepas kami memanggilnya. Pada masa ini, dua yang pertama berpuas hati . Ingat bahawa dalam seni bina keseluruhan jQuery yang pertama, undefined akan ditulis semula, begitu juga document.body akan ditulis semula sebagai null? Apabila saya cuba mengubah suai kod, ralat akan dilaporkan Nampaknya ia tidak mungkin Kemudian syarat ini adalah untuk menghalang pelaksanaan tanpa memuatkan html

Jenis keempat ialah rentetan selain daripada situasi rentetan yang disebutkan di atas Kami akan meninggalkan lebih banyak situasi dalam artikel seterusnya.

Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Muzium Dua Point: Semua Pameran dan Di Mana Mencari Mereka
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penjelasan terperinci kaedah rujukan jQuery: Panduan permulaan cepat Penjelasan terperinci kaedah rujukan jQuery: Panduan permulaan cepat Feb 27, 2024 pm 06:45 PM

Penjelasan terperinci kaedah rujukan jQuery: Panduan Mula Pantas jQuery ialah perpustakaan JavaScript yang popular yang digunakan secara meluas dalam pembangunan tapak web Ia memudahkan pengaturcaraan JavaScript dan menyediakan pemaju dengan fungsi dan ciri yang kaya. Artikel ini akan memperkenalkan kaedah rujukan jQuery secara terperinci dan menyediakan contoh kod khusus untuk membantu pembaca bermula dengan cepat. Memperkenalkan jQuery Pertama, kita perlu memperkenalkan perpustakaan jQuery ke dalam fail HTML. Ia boleh diperkenalkan melalui pautan CDN atau dimuat turun

Bagaimana untuk mengalih keluar atribut ketinggian elemen dengan jQuery? Bagaimana untuk mengalih keluar atribut ketinggian elemen dengan jQuery? Feb 28, 2024 am 08:39 AM

Bagaimana untuk mengalih keluar atribut ketinggian elemen dengan jQuery? Dalam pembangunan bahagian hadapan, kita sering menghadapi keperluan untuk memanipulasi atribut ketinggian elemen. Kadangkala, kita mungkin perlu menukar ketinggian unsur secara dinamik, dan kadangkala kita perlu mengalih keluar atribut ketinggian unsur. Artikel ini akan memperkenalkan cara menggunakan jQuery untuk mengalih keluar atribut ketinggian elemen dan memberikan contoh kod khusus. Sebelum menggunakan jQuery untuk mengendalikan atribut ketinggian, kita perlu terlebih dahulu memahami atribut ketinggian dalam CSS. Atribut ketinggian digunakan untuk menetapkan ketinggian elemen

Bagaimana untuk menggunakan kaedah permintaan PUT dalam jQuery? Bagaimana untuk menggunakan kaedah permintaan PUT dalam jQuery? Feb 28, 2024 pm 03:12 PM

Bagaimana untuk menggunakan kaedah permintaan PUT dalam jQuery? Dalam jQuery, kaedah menghantar permintaan PUT adalah serupa dengan menghantar jenis permintaan lain, tetapi anda perlu memberi perhatian kepada beberapa butiran dan tetapan parameter. Permintaan PUT biasanya digunakan untuk mengemas kini sumber, seperti mengemas kini data dalam pangkalan data atau mengemas kini fail pada pelayan. Berikut ialah contoh kod khusus menggunakan kaedah permintaan PUT dalam jQuery. Mula-mula, pastikan anda memasukkan fail perpustakaan jQuery, kemudian anda boleh menghantar permintaan PUT melalui: $.ajax({u

Petua jQuery: Cepat ubah suai teks semua teg pada halaman Petua jQuery: Cepat ubah suai teks semua teg pada halaman Feb 28, 2024 pm 09:06 PM

Tajuk: Petua jQuery: Cepat ubah suai teks semua teg pada halaman Dalam pembangunan web, kita selalunya perlu mengubah suai dan mengendalikan elemen pada halaman. Apabila menggunakan jQuery, kadangkala anda perlu mengubah suai kandungan teks semua teg dalam halaman sekaligus, yang boleh menjimatkan masa dan tenaga. Berikut akan memperkenalkan cara menggunakan jQuery untuk mengubah suai teks semua teg pada halaman dengan cepat, dan memberikan contoh kod khusus. Pertama, kita perlu memperkenalkan fail perpustakaan jQuery dan memastikan bahawa kod berikut dimasukkan ke dalam halaman: &lt

Gunakan jQuery untuk mengubah suai kandungan teks semua teg Gunakan jQuery untuk mengubah suai kandungan teks semua teg Feb 28, 2024 pm 05:42 PM

Tajuk: Gunakan jQuery untuk mengubah suai kandungan teks semua teg jQuery ialah perpustakaan JavaScript yang popular yang digunakan secara meluas untuk mengendalikan operasi DOM. Dalam pembangunan web, kita sering menghadapi keperluan untuk mengubah suai kandungan teks tag pautan (tag) pada halaman. Artikel ini akan menerangkan cara menggunakan jQuery untuk mencapai matlamat ini dan memberikan contoh kod khusus. Pertama, kita perlu memperkenalkan perpustakaan jQuery ke dalam halaman. Tambahkan kod berikut dalam fail HTML:

Bagaimana untuk mengetahui sama ada elemen jQuery mempunyai atribut tertentu? Bagaimana untuk mengetahui sama ada elemen jQuery mempunyai atribut tertentu? Feb 29, 2024 am 09:03 AM

Bagaimana untuk mengetahui sama ada elemen jQuery mempunyai atribut tertentu? Apabila menggunakan jQuery untuk mengendalikan elemen DOM, anda sering menghadapi situasi di mana anda perlu menentukan sama ada sesuatu elemen mempunyai atribut tertentu. Dalam kes ini, kita boleh melaksanakan fungsi ini dengan mudah dengan bantuan kaedah yang disediakan oleh jQuery. Berikut akan memperkenalkan dua kaedah yang biasa digunakan untuk menentukan sama ada elemen jQuery mempunyai atribut khusus, dan melampirkan contoh kod tertentu. Kaedah 1: Gunakan kaedah attr() dan operator jenis // untuk menentukan sama ada elemen mempunyai atribut tertentu

Fahami peranan dan senario aplikasi eq dalam jQuery Fahami peranan dan senario aplikasi eq dalam jQuery Feb 28, 2024 pm 01:15 PM

jQuery ialah perpustakaan JavaScript popular yang digunakan secara meluas untuk mengendalikan manipulasi DOM dan pengendalian acara dalam halaman web. Dalam jQuery, kaedah eq() digunakan untuk memilih elemen pada kedudukan indeks tertentu Senario penggunaan dan aplikasi khusus adalah seperti berikut. Dalam jQuery, kaedah eq() memilih elemen pada kedudukan indeks yang ditentukan. Kedudukan indeks mula dikira dari 0, iaitu indeks elemen pertama ialah 0, indeks elemen kedua ialah 1, dan seterusnya. Sintaks kaedah eq() adalah seperti berikut: $("s

Ringkasan fungsi operasi fail yang biasa digunakan dalam PHP Ringkasan fungsi operasi fail yang biasa digunakan dalam PHP Apr 03, 2024 pm 02:52 PM

目录1:nama asas()2:salinan()3:nama nama()4:ruang_bebas_cakera()5:ruang_jumlah_cakera()6:wujud_fail()7:fail_dapatkan_kandungan()8:isi_letak_fail()9:saiz fail()10:jenis fail( )11:glob()12:is_dir()13:boleh_tulis()14:mkdir()15:move_uploaded_file()16:parse_ini_file()17:

See all articles