¿Cuándo debo llamar a las funciones anónimas a través de jQuery y cuándo a través de JavaScript normal?

StackOverflow https://stackoverflow.com/questions/19847531

Pregunta

Me preguntaba cuál es la diferencia de usar jQuery o no usarla podría estar considerando la siguiente tarea. Todavía no he encontrado ninguna respuesta.

jQuery:

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

JavaScript puro:

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

¿Cuál es la diferencia? ¿Cuándo debo usar qué enfoque? ¡Gracias!

¿Fue útil?

Solución

En general, $(function() { alert("Hello World!"); }) espera $(document).ready() y la otra función (un Iife) dispara de inmediato.

Pero la función envuelta jQuery es un caso de uso muy específico (esperando el DOM, usando jQuery); Sus dos ejemplos no están relacionados. No los confundas como 2 versiones de lo mismo.

Otros consejos

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

es una mano corta para:

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

Entonces se ejecutará después de DOM Cargas.

mientras que usted puro se ejecutará antes de que DOM se cargue.

La versión jQuery se une para ejecutarse una vez que se carga el DOM. El tipo en solo un cierre se ejecuta tan pronto como se define. Entonces, si desea que se ejecute de inmediato, use la segunda versión, si debe esperar hasta que todo esté cargado, use el primero.

Al menos, eso es lo que tengo de mi cabeza.

La principal diferencia es que las funciones jQuery se ejecutan después de cargar el DOM. Y la función pura javascript lambda se ejecuta inmediatamente (dentro de su contexto).

La segunda función jQuery es la taquigrafía para la primera.

Todavía podría colocar la función JavaScript Lambda dentro del envoltorio jQuery. Esto significaría que la función Lambda se ejecutaría justo después de que el DOM se haya cargado (gracias a JQuery cuidando eso).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top