Ce n' (function($) {})(jQuery); moyenne?

Je commence tout juste avec l'écriture de plugins jQuery. J'ai écrit trois petits plugins, mais j'ai été tout simplement copier la ligne dans tous mes plugins, sans vraiment savoir ce qu'il signifie. Quelqu'un peut-il m'en dire un peu plus sur ces? Peut-être une explication vous sera utile un jour, lors de l'écriture d'un cadre 🙂

À quoi ça sert? (Je sais qu'il s'étend jQuery, mais est-il autre chose intéressante à savoir à ce sujet)

(function($) {

})(jQuery);

Quelle est la différence entre les deux façons d'écrire un plugin:

De Type 1:

(function($) {
    $.fn.jPluginName = {

        },

        $.fn.jPluginName.defaults = {

        }
})(jQuery);

De Type 2:

(function($) {
    $.jPluginName = {

        }
})(jQuery);

Type 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);

Je pourrais être loin d'ici et peut-être que signifient tous la même chose. Je suis confus. Dans certains cas, ce ne semble pas être le travail dans un plugin que j'ai écrit à l'aide de Type 1. Jusqu'à présent, de Type 3 semble la plus élégante pour moi, mais j'aimerais connaître les autres.

  • C'est l'heure du coucher ici, mais juste pour des démarreurs, (function($) { })(jQuery); encapsule le code de sorte que $ est jQuery à l'intérieur fermeture, même si $ signifie quelque chose d'autre en dehors de cela, le plus souvent comme le résultat de $.noConflict() par exemple. Cela vous assure que votre plugin fonctionne, si oui ou non $ === jQuery 🙂
  • Sur (function($) { })(jQuery) vous avez dit : "je sais qu'il s'étend jQuery en quelque sorte [...]". Il est clair que vous ne savez pas depuis votre déclaration est 100% faux. Par la façon dont il peut être trompeur pour les futurs lecteurs. Jetez un oeil à ceci : stackoverflow.com/a/32550649/1636522.
  • S'étendant sur @NickCraver commentaires, jquery-ui-1.7.2.custom.min.js utilise ceci par exemple: jQuery.interface utilisateur||(function(c){var i=c.fn.supprimer,d=c.le navigateur.mozilla........})(jQuery). Je sais que c'est une ancienne version de jQuery UI avec code obsolète, mais le point est de montrer comment, dans ce cas, ils sont à l'aide de "c" au lieu de "$".
InformationsquelleAutor Legend | 2010-05-30