


Contoh penggunaan penutupan Javascript analysis_javascript kemahiran
Artikel ini menganalisis konsep dan penggunaan penutupan Javascript dengan contoh. Kongsikan dengan semua orang untuk rujukan anda. Butirannya adalah seperti berikut:
Apabila bercakap tentang penutupan, semua orang pasti pernah mendengarnya. Ini adalah pemahaman mudah saya.
Sejujurnya, tidak banyak senario di mana penutupan sebenarnya ditulis secara manual dalam kerja harian, tetapi rangka kerja dan komponen pihak ketiga yang digunakan dalam projek lebih kurang menggunakan penutupan.
Oleh itu, adalah sangat perlu untuk memahami penutupan. Haha...
1. Apakah itu penutupan
Ringkasnya, ia adalah fungsi yang boleh membaca pembolehubah dalaman fungsi lain.
Disebabkan oleh ciri-ciri skop pembolehubah JS, pembolehubah dalaman tidak boleh diakses dari luar, tetapi pembolehubah luaran boleh diakses dari dalam.
2. Senario penggunaan
1. Laksanakan ahli persendirian.
2. Lindungi ruang nama untuk mengelakkan pencemaran pembolehubah global.
3. Pembolehubah cache.
Mari kita lihat contoh enkapsulasi dahulu:
// Skop pembolehubah berada di dalam fungsi dan tidak boleh diakses dari luar
var name = "default";
kembali {
getName: function () {
kembalikan nama;
},
setName: function (newName) {
nama = newName;
}
}
}();
console.log(person.name); // Akses langsung, hasilnya: tidak ditentukan
console.log(person.getName()); // Hasilnya ialah: lalai
console.log(person.setName("langjt"));
console.log(person.getName()); // Hasilnya ialah: langjt
Lihat penutupan yang biasa digunakan dalam gelung untuk menyelesaikan masalah merujuk pembolehubah luaran:
untuk (var i=0, len=aLi.length; i
alert(i); // Tidak kira elemen
};
}
Selepas menggunakan penutupan:
untuk (var i=0, len=aLi.length; i
Kembalikan fungsi() {
alert(i); // Klik elemen
}
})(i);
}
3. Langkah berjaga-jaga
1. Kebocoran memori
Memandangkan penutupan menyebabkan semua pembolehubah dalam fungsi disimpan dalam ingatan, yang menggunakan banyak memori, penutupan tidak boleh disalahgunakan, jika tidak, ia akan menyebabkan masalah prestasi pada halaman web.
Contohnya:
var oDiv = document.getElementById(‘J_DIV’);
var id = oDiv.id;
oDiv.onclick = function() {
// alert(oDiv.id); Terdapat rujukan bulat di sini, dan oDiv masih dalam ingatan selepas halaman versi rendah IE ditutup. Jadi cache jenis primitif dan bukannya objek apabila boleh.
alert(id);
};
oDiv = null;
}
2. Penamaan pembolehubah
Jika nama pembolehubah bagi fungsi dalaman dan nama pembolehubah bagi fungsi luaran adalah sama, maka fungsi dalaman tidak lagi boleh menunjuk kepada pembolehubah dengan nama fungsi luaran yang sama.
Contohnya:
kembalikan fungsi(bilangan) {
console.log(bilangan);
}
}
var f = foo baharu(9);
f(); // undefined
Tatsächlich besteht die obige Verwendung, der Fachbegriff wird Funktionscurrying genannt, darin, eine Funktion, die mehrere Parameter akzeptiert, in eine Funktion umzuwandeln, die einen einzelnen Parameter (den ersten Parameter der ursprünglichen Funktion) akzeptiert und die verbleibenden Parameter zurückgibt . Neue Funktionstechnologie, die Parameter entgegennimmt und ein Ergebnis zurückgibt. Im Wesentlichen nutzt es auch die Caching-Funktion von Verschlüssen, wie zum Beispiel:
Rückgabefunktion(y) {
return num y;
};
};
var inc = adder(1);
var dec = adder(-1);
//inc, dec sind jetzt zwei neue Funktionen, deren Funktion darin besteht, den übergebenen Parameterwert (/‐)1
umzuwandeln
alarm(inc(99));//100
alarm(dec(101));//100
alarm(adder(100)(2));//102
alarm(adder(2)(100));//102
Ein weiteres Beispiel ist der seaJS-Quellcode von Ali Yubo:
* util-lang.js – Die minimale Spracherweiterung
*/
Funktion isType(type) {
Rückgabefunktion(obj) {
Return {}.toString.call(obj) == "[object " type "]"
}
}
var isObject = isType("Object");
var isString = isType("String");
Ich hoffe, dass dieser Artikel für das JavaScript-Programmierdesign aller hilfreich sein wird.

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

Dalam C++, penutupan ialah ungkapan lambda yang boleh mengakses pembolehubah luaran. Untuk membuat penutupan, tangkap pembolehubah luar dalam ungkapan lambda. Penutupan memberikan kelebihan seperti kebolehgunaan semula, penyembunyian maklumat dan penilaian malas. Ia berguna dalam situasi dunia sebenar seperti pengendali acara, di mana penutupan masih boleh mengakses pembolehubah luar walaupun ia dimusnahkan.

Ungkapan C++ Lambda menyokong penutupan, yang menyimpan pembolehubah skop fungsi dan menjadikannya boleh diakses oleh fungsi. Sintaks ialah [capture-list](parameters)->return-type{function-body}. capture-list mentakrifkan pembolehubah untuk ditangkap Anda boleh menggunakan [=] untuk menangkap semua pembolehubah tempatan mengikut nilai, [&] untuk menangkap semua pembolehubah tempatan melalui rujukan, atau [variable1, variable2,...] untuk menangkap pembolehubah tertentu. Ungkapan Lambda hanya boleh mengakses pembolehubah yang ditangkap tetapi tidak boleh mengubah suai nilai asal.

Penutupan ialah fungsi bersarang yang boleh mengakses pembolehubah dalam skop fungsi luar Kelebihannya termasuk pengkapsulan data, pengekalan keadaan dan fleksibiliti. Kelemahan termasuk penggunaan memori, kesan prestasi dan kerumitan penyahpepijatan. Selain itu, penutupan boleh mencipta fungsi tanpa nama dan menyerahkannya kepada fungsi lain sebagai panggilan balik atau hujah.

Kesan penunjuk fungsi dan penutupan pada prestasi Go adalah seperti berikut: Penunjuk fungsi: Lebih perlahan sedikit daripada panggilan langsung, tetapi meningkatkan kebolehbacaan dan kebolehgunaan semula. Penutupan: Biasanya lebih perlahan, tetapi merangkumi data dan tingkah laku. Kes praktikal: Penunjuk fungsi boleh mengoptimumkan algoritma pengisihan dan penutupan boleh mencipta pengendali acara, tetapi ia akan membawa kerugian prestasi.

Penutupan dalam Java membenarkan fungsi dalaman mengakses pembolehubah skop luar walaupun fungsi luar telah keluar. Dilaksanakan melalui kelas dalaman tanpa nama, kelas dalam memegang rujukan kepada kelas luar dan memastikan pembolehubah luar aktif. Penutupan meningkatkan fleksibiliti kod, tetapi anda perlu sedar tentang risiko kebocoran memori kerana rujukan kepada pembolehubah luaran oleh kelas dalaman tanpa nama memastikan pembolehubah tersebut hidup.

Ya, kesederhanaan dan kebolehbacaan kod boleh dioptimumkan melalui panggilan berantai dan penutupan: panggilan berantai memaut fungsi panggilan ke antara muka yang lancar. Penutupan mewujudkan blok kod yang boleh digunakan semula dan pembolehubah akses di luar fungsi.

Penggunaan permintaan POST dalam PHP adalah operasi biasa dalam pembangunan laman web Data boleh dihantar ke pelayan melalui permintaan POST, seperti data borang, maklumat pengguna, dll. Penggunaan permintaan POST yang betul boleh memastikan keselamatan dan ketepatan data Perkara berikut akan memperkenalkan penggunaan permintaan POST yang betul dalam PHP dan memberikan contoh kod tertentu. 1. Prinsip asas permintaan POST dalam PHP Dalam PHP, data yang dihantar melalui kaedah POST boleh diperoleh dengan menggunakan pembolehubah global $_POST. Kaedah POST menukar nombor borang menjadi

Fungsi tanpa nama adalah ringkas dan tanpa nama, tetapi mempunyai kebolehbacaan yang lemah dan kesukaran dalam penyahpepijatan boleh merangkum data dan mengurus keadaan, tetapi boleh menyebabkan penggunaan memori dan rujukan bulat. Kes praktikal: Fungsi tanpa nama boleh digunakan untuk pemprosesan berangka yang mudah, dan penutupan boleh melaksanakan pengurusan negeri.
