Rumah > Artikel > hujung hadapan web > Mengapa Menggunakan IIFE Semasa Membangunkan Pemalam jQuery?
Pengenalan
Apabila mendalami pembangunan pemalam jQuery, seseorang sering menemui kod samar coretan:
(function($) {})(jQuery);
Ungkapan yang penuh teka-teki ini mempunyai kepentingan yang besar dalam bidang pemalam jQuery. Mari kita rungkai tujuannya dan terokai nuansa pembinaan pemalam.
Pelaksanaan Fungsi dengan Argumen
Blok kod pada dasarnya melaksanakan fungsi tanpa nama yang menerima jQuery objek sebagai hujah. Teknik ini, yang dikenali sebagai Ungkapan Fungsi Segera Diminta (IIFE), mempunyai pelbagai tujuan:
Perbandingan Gaya Penulisan Plugin
Di luar penggunaan asas ini, terdapat beberapa pendekatan untuk menulis pemalam jQuery. Mari kita periksa perbezaan antara tiga gaya biasa:
Jenis 1: Memanjangkan Pemilih jQuery
(function($) { $.fn.jPluginName = { }, $.fn.jPluginName.defaults = { } })(jQuery);
Pendekatan ini memanjangkan pemilih jQuery dengan kaedah tersuai, tetapi ia adalah bukan pemalam secara teknikal. Ia menambah fungsi baharu pada kaedah sedia ada prototaip fungsi jQuery.
Jenis 2: Memanjangkan Teras jQuery
(function($) { $.jPluginName = { } })(jQuery);
Serupa dengan Jenis 1, ini tidak mencipta pemalam tetapi memanjangkan teras jQuery. Ia berguna untuk menambah kaedah traversal baharu pada senjata jQuery.
Jenis 3: Memperluas Prototaip Fungsi jQuery
(function($){ //Attach this new method to jQuery $.fn.extend({ var defaults = { } var options = $.extend(defaults, options); //This is where you write your plugin's name pluginname: function() { //Iterate over the current set of matched elements return this.each(function() { //code to be inserted here }); } }); })(jQuery);
Jenis 3 ialah kaedah pilihan untuk mencipta jQuery pemalam. Ia membolehkan penciptaan kaedah tersuai yang boleh dipanggil pada mana-mana pemilih jQuery. Dengan memanjangkan prototaip fungsi jQuery, kefungsian pemalam boleh diakses melalui semua tika pemilih.
Atas ialah kandungan terperinci Mengapa Menggunakan IIFE Semasa Membangunkan Pemalam jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!