Analisis prinsip pelaksanaan kaedah extend dalam JQuery_jquery
Saya sudah lama tidak menyiarkan siaran Hari ini saya tiba-tiba menganalisis prinsip pelaksanaan kaedah lanjutan dalam JQuery. Tujuannya adalah untuk meningkatkan pemahaman saya tentang JQuery, dan juga ingin memahami bagaimana master JavaScript menulis JS. Sila betulkan saya jika terdapat sebarang kekurangan. Terima kasih!
Berikut ialah kod sumber kaedah JQuery.extend:
jQuery.extend = jQuery.fn.extend = function() {
pilihan var, nama, src, salinan, copyIsArray, klon,
sasaran = argumen[0] || {}, // objek sasaran
i = 1,
panjang = arguments.length,
dalam = palsu; // Mengendalikan situasi salinan dalam (parameter pertama ialah jenis boolean dan benar)
Jika ( jenis sasaran === "boolean") {
dalam = sasaran; sasaran = hujah[1] || {}; // Langkau parameter pertama (sama ada untuk menyalin dalam atau tidak) dan parameter kedua (objek sasaran)
i = 2; }
// Jika sasaran bukan objek atau fungsi, mulakan kepada objek kosong
Jika ( jenis sasaran !== "objek" && !jQuery.isFunction(sasaran) ) {
Sasaran = {};
}
// Jika hanya satu parameter ditentukan, jQuery sendiri digunakan sebagai objek sasaran
Jika ( panjang === i ) {
sasaran = ini; --i; }
untuk ( ; i < panjang; i ) {
// Hanya berurusan dengan nilai bukan nol/tidak ditentukan
Jika ( (pilihan = hujah[ i ]) != null ) {
// Panjangkan objek asas
untuk ( nama dalam pilihan ) {
src = sasaran [nama]; salinan = pilihan [ nama ]; // Cegah gelung tidak berkesudahan
Jika ( sasaran === salin ) {
Teruskan
// Jika objek mengandungi tatasusunan atau objek lain, gunakan rekursi untuk menyalin
Jika ( dalam && salin && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
... Jika (copyIsArray) {
copyIsArray = salah
// Jika tatasusunan tidak wujud dalam objek sasaran, buat tatasusunan kosong
klon = src && jQuery.isArray(src) src : []; klon = src && jQuery.isPlainObject(src) src : {}; // Jangan sekali-kali menukar objek asal, hanya buat salinan
target[ name ] = jQuery.extend( deep, clone, copy ); // Jangan salin nilai UNDEFINED
sasaran [nama] = salinan; }
// Kembalikan objek yang diubah suai
Kembalikan sasaran; };
Daripada analisis di atas, kita dapat melihat bahawa fungsi extend menyokong salinan dalam Jadi apakah salinan dalam dalam JS?
Pemahaman saya adalah seperti berikut: Jika objek mengandungi objek rujukan (seperti tatasusunan atau objek), maka apabila menyalin objek, ia bukan sekadar salinan alamat objek rujukan, tetapi kandungan objek rujukan adalah disalin dan disimpan sebagai objek berasingan (Seperti yang ditunjukkan di bawah).
Daripada gambar di atas, anda boleh melihat bahawa dua objek pelajar berkongsi objek rakan Operasi satu pihak pada objek rakan juga boleh dilihat oleh pihak lain. Contohnya: jika anda menukar nama keluarga rakan anda kepada "zhangsan", maka objek lain juga boleh melihatnya.
Seperti yang dapat dilihat dari gambar di atas, kedua-dua objek pelajar mempunyai objek rakan mereka sendiri, dan pengubahsuaian satu adalah telus sepenuhnya kepada yang lain (tanpa sebarang kesan). Di atas adalah pemahaman saya tentang penyalinan yang mendalam. Jika ada yang salah, jangan ketawa.
Jadi, bagaimanakah kaedah JQuery.extend melaksanakan salinan cetek dan salinan dalam?
Cara menggunakan JQuery.extend:
1. JQuery.extend (objek sumber)
Kembangkan objek sumber ke objek jQuery, iaitu, salin sifat dan kaedah objek sumber ke jQuery. Gunakan jQuery sebagai objek sasaran, kod sumber adalah seperti berikut:
Kod adalah seperti berikut:
【Contoh 1】: Panjangkan kaedah objek orang ke objek jQuery.
$.showName("admin"); // Nama: amdin
alert("Sex: " $.sex); // Jantina: lelaki
[Contoh 2] Sahkan bahawa menggunakan bentuk kaedah lanjutan ini adalah salinan cetek.
$.language.push('PL/SQL'); // Ubah suai objek yang dikembangkan
alert(person.language); // java, c, sql, PL/SQL
person.language.pop();
alert($.language); // java, c, sql
Daripada contoh di atas, kita boleh mendapati bahawa sebarang pengubahsuaian tatasusunan bahasa oleh sama ada objek dikembangkan ($) atau objek sumber (orang) akan mempengaruhi pihak yang satu lagi. Ini salinan cetek
2. JQuery.extend (objek sasaran, objek sumber)
Salin sifat dan kaedah objek sumber ke objek sasaran, menggunakan salinan cetek.
[Contoh] Buat objek orang dan pelajar masing-masing, kemudian lanjutkan atribut dan kaedah orang itu kepada objek pelajar melalui kaedah jQuery.extend.
var orang = {
Bahasa: ['java', 'c ', 'sql'],
ShowName : function(nama){
alert("Nama: " nama);
}
};
var pelajar = {
ShowNum : function(num){
makluman("Bilangan: " bilangan); }
};
jQuery.extend(pelajar, orang); // Panjangkan objek orang ke objek pelajar yang ditentukan
student.showName("admin");
makluman(pelajar.bahasa);
3. JQuery.extend (boolean, objek sumber)
[Contoh] Panjangkan objek orang ke objek jQuery
Bahasa: ['java', 'c ', 'sql'],
ShowName : function(nama){
alert("Nama: " nama);
}
};
jQuery.extend(true, person); // Panjangkan objek orang ke objek jQuery
alert($.language); // java, c, sql
$.language.push('PL/SQL'); // Ubah suai objek yang dikembangkan
alert(person.language); // java, c, sql
person.language.pop();
4. JQuery.extend (boolean, objek sasaran, objek sumber)
[Contoh] Buat objek orang dan pelajar masing-masing, kemudian lanjutkan atribut dan kaedah orang itu kepada objek pelajar melalui kaedah jQuery.extend.
ShowName : function(nama){
alert("Nama: " nama);
}
};
var pelajar = {
Bahasa: ["java", "c ", "javascript"],
ShowNum : function(num){
makluman("Bilangan: " bilangan); }
};
var target = jQuery.extend(orang, pelajar); alert(target.language); // java, c, javascript
target.language.push("PL/SQL"); alert(pelajar.bahasa); // java, c, javascript, PL/SQL
student.language.pop();
alert(target.language); // java, c, javascript
var target2 = jQuery.extend(benar, orang, pelajar); alert(target2.language); // java, c, javascript
target2.language.push("PL/SQL"); alert(pelajar.bahasa); // java, c, javascript
student.language.pop();
alert(target2.language); // java, c, javascript, PL/SQL
Di atas adalah pemahaman saya tentang kaedah lanjutan. Sila betulkan saya jika ada yang tidak betul. Terima kasih banyak-banyak!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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? 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? 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

jQuery ialah perpustakaan JavaScript yang pantas, kecil dan kaya dengan ciri yang digunakan secara meluas dalam pembangunan bahagian hadapan. Sejak dikeluarkan pada tahun 2006, jQuery telah menjadi salah satu alat pilihan untuk banyak pembangun, tetapi dalam aplikasi praktikal, ia juga mempunyai beberapa kelebihan dan kekurangan. Artikel ini akan menyediakan analisis mendalam tentang kelebihan dan kekurangan jQuery dan menggambarkannya dengan contoh kod khusus. Kelebihan: 1. Sintaks ringkas Reka bentuk sintaks jQuery adalah ringkas dan jelas, yang boleh meningkatkan kebolehbacaan dan kecekapan menulis kod. sebagai contoh,

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: <

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? 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

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
