Saya baru memulai dengan menulis plugin jQuery. Saya menulis tiga plugin kecil tetapi saya hanya menyalin garis ke semua plugin saya tanpa benar-benar tahu apa artinya. Bisakah seseorang memberi tahu saya lebih banyak tentang ini? Mungkin suatu penjelasan akan berguna suatu hari nanti ketika menulis suatu kerangka :)
Apa fungsinya? (Saya tahu itu meluas jQuery entah bagaimana tetapi apakah ada hal lain yang menarik untuk diketahui tentang ini)
(function($) {
})(jQuery);
Apa perbedaan antara dua cara penulisan plugin berikut:
Tipe 1:
(function($) {
$.fn.jPluginName = {
},
$.fn.jPluginName.defaults = {
}
})(jQuery);
Tipe 2:
(function($) {
$.jPluginName = {
}
})(jQuery);
Tipe 3:
(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);
Saya bisa saja jauh dari sini dan mungkin semua memiliki arti yang sama. Saya bingung. Dalam beberapa kasus, ini tampaknya tidak berfungsi dalam sebuah plugin yang saya tulis menggunakan Tipe 1. Sejauh ini, Tipe 3 tampaknya paling elegan bagi saya, tetapi saya juga ingin tahu tentang yang lain.
(function($) { })(jQuery)
Anda berkata: "Saya tahu itu meluas jQuery entah bagaimana [...]". Jelas Anda tidak tahu karena pernyataan Anda 100% salah. Ngomong-ngomong itu bisa menyesatkan pembaca masa depan. Lihatlah ini: stackoverflow.com/a/32550649/1636522 .
(function($) { })(jQuery);
membungkus kode sehingga$
adajQuery
di dalam penutupan itu, bahkan jika$
berarti sesuatu yang lain di luar itu, biasanya sebagai hasil dari$.noConflict()
misalnya. Ini memastikan plugin Anda berfungsi, baik$ === jQuery
:)