Разница между структурами кода jQuery

#javascript #jquery

#javascript #jquery

Вопрос:

В чем разница между этими структурами кода jQuery, или разницы нет. Являются ли они псевдонимами для $(document).ready(function(){ и если да, то почему доллар в первом фрагменте кода?

 jQuery(function($){
     // stuff
});
  

И

 $(function() {
        // stuff
});
  

Ответ №1:

$ Параметр в первом блоке в этом контексте не нужен.

Где вы могли бы увидеть это в блоке, подобном этому:

 (function ($) {
    // stuff
})(jQuery);
  

В этом контексте это позволило бы вам всегда использовать $ псевдоним, даже если существует конфликтующая библиотека.

Игнорируя это, разницы нет. $ это просто псевдоним для jQuery .

Оба являются ярлыками для $(document).ready(function(){

Комментарии:

1. «Параметр $ в первом блоке не нужен в этом контексте». Нужен ли он когда-либо, или вы всегда можете его пропустить? Я просто спрашиваю, потому что я где-то это видел, и я никогда не видел это так, обычно это просто jQuery(function(){

Ответ №2:

Что сказал BNL и да, они оба являются псевдонимом для $(document) .готово(функция (){

вы также можете написать jQuery (document).готово(функция(){ 🙂

Ответ №3:

если вы используете только jQuery, то оба $ и jQuery одинаковы, но если вы используете другую библиотеку javascript, которая используется $ в качестве ярлыка, они не будут одинаковыми. Но если это просто jQuery, то это так же, как вы и @BNL написали его, это то же самое.

Ответ №4:

Первый обрезанный код служит для предотвращения конфликтов с другими библиотеками JS, которые могут использовать этот $ символ. Обертывание кода jQuery таким образом позволяет использовать $ inside, не беспокоясь о конфликтах. Это хорошая практика, например, если вы пишете плагин jQuery для защиты от конфликтов таким образом. В противном случае, обычно jQuery является синонимом $ .

Также посмотрите здесь дополнительную информацию о том, как избежать конфликтов с другими библиотеками: http://api.jquery.com/jQuery.noConflict /