El segundo ejemplo que muestra es una función anónima autoejecutable. Cada archivo separado JS que use probablemente se beneficie al usarlo. Proporciona un ámbito privado, donde todo lo que se declara con la palabra clave var
permanece en el interior sólo eso alcance:
(function($){
var special = "nice!";
})(jQuery);
alert(special); // would be undefined
El primer ejemplo es la abreviatura de $(document).ready
que dispara cuando el DOM puede ser manipulado.
Un par de cosas interesantes al respecto.En primer lugar, se puede usar dentro de la propia función de ejecución:
(function($){
$(function(){
// Run on DOM ready
});
// Run right away
})(jQuery);
En segundo lugar, si todo lo que necesita es un par de líneas en el documento listo, puede combinar tanto en el ámbito privado y la función de lista de DOM como esto:
jQuery(function($){
// $ = jQuery regardless of what it means
// outside this DOM ready function
});
Creo que se prefiere $ (función() {...}), ya que permite la posibilidad de que los autores de jQuery piensen en una mejor manera de ejecutar esas funciones de inicialización que el evento "listo", y su el código seguirá funcionando. Creo que de hecho he leído que el enlace explícito al evento "listo" está en desuso a menos que sepa explícitamente que quiere hacer precisamente eso. – Pointy