Definitivamente hay un caso de uso para el primer ejemplo. Si tiene otras librerías/scripts JS cargadas en la misma página, no hay garantía de que no sobrescriban la variable $
. (Esto es muy común cuando tienes Prototype y jQuery en la misma página).
Por lo tanto, si Prototype usa $
, deberá usar jQuery
en cualquier momento que desee trabajar con jQuery. Esto puede llegar a ser muy feo:
jQuery(function(){
jQuery('a', '#content').bind('click', function(){
if(jQuery(this).attr('href') == 'www.google.com')
{
alert("This link goes to Google");
jQuery(this).addClass('clicked'));
}
});
})
Recuerde, no podemos usar $
ya que es un método de prototipo en el ámbito global.
Pero si lo envolvió en el interior de esta ..
(function($){
$(function(){
// your code here
});
})(jQuery);
El $
realidad haría referencia a la biblioteca jQuery interior, mientras que todavía en referencia al prototipo en el exterior!Esto puede ayudar a poner en orden su código:
(function($){
$(function{}(
jQuery('a', '#content').bind('click', function(){
if(jQuery(this).attr('href') == 'www.google.com')
{
alert("This link goes to Google");
jQuery(this).addClass('clicked'));
}
});
));
})(jQuery);
Este es un patrón común con extensiones de jQuery para asegurar que siempre se agregan al objeto jQuery, pero se pueden escribir con $
para mantener el código ordenado.
FYI - no son equivalentes. – Hamish