Question

Je me demandais quelle est la différence d'utilisation de jQuery ou de ne pas l'utiliser pourrait être considérée comme la tâche suivante. Je n'ai pas encore trouvé de réponse.

jQuery:

jQuery(function() { alert("Hello World!"); })
$(function() { alert("Hello World!"); })

Pur javascript:

(function() { alert("Hello World!"); })()

Quelle est la différence? Quand dois-je utiliser quelle approche? Merci!

Était-ce utile?

La solution

En général, $(function() { alert("Hello World!"); }) attendre $(document).ready() et l'autre fonction (un Iife) tire immédiatement.

Mais la fonction jQuery enveloppée est un cas d'utilisation très spécifique (en attendant le DOM, en utilisant jQuery); Vos deux exemples sont autrement sans rapport. Ne les confondez pas comme 2 versions de la même chose.

Autres conseils

$(function(){
  alert("hello world");
});

est une main courte pour:

$(document).ready(function(){
    alert("hello world");
});

Il sera donc exécuté après les charges DOM.

Pendant que vous, JS pure sera exécuté avant le chargement DOM.

La version jQuery se lie à être exécutée une fois que le DOM se charge. Le genre dans une fermeture s'exécute dès qu'il est défini. Donc, si vous voulez qu'il s'exécute immédiatement, utilisez la deuxième version, s'il doit attendre que tout soit chargé, utilisez le premier.

Au moins, c'est ce que j'ai sur le dessus de ma tête.

La principale différence est que les fonctions jQuery sont exécutées après le chargement du DOM. Et la fonction Lambda JavaScript pure est exécutée immédiatement (dans son contexte).

La deuxième fonction jQuery est un raccourci pour le premier.

Vous pouvez toujours mettre la fonction Lambda JavaScript à l'intérieur de l'emballage jQuery. Cela signifierait que la fonction lambda s'exécuterait juste une fois le DOM chargé (grâce à la prise en charge de jQuery).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top