2012-04-24 17 views
6

Creo comprender el patrón de módulo, pero ¿por qué algunos ejemplos jQuery pasar como un parámetro de esta manera:Patrón de módulo: ¿por qué se pasa JQuery como parámetro?

Namespace.AppName = (function ($) { 
    // Code Here 
})(jQuery); 

Si no paso en jQuery todavía puedo utilizar la biblioteca jQuery muy bien al hacer $() llamadas dentro del módulo. Entonces, ¿por qué algunas personas hacen esto?

+0

posible duplicado de [signo de dólar jQuery ($) como argumento de la función?] (Http://stackoverflow.com/questions/4983150/jquery-dollar-sign-as-function-argument) –

Respuesta

16

La idea aquí es que se pasa como jQuery$ a la función en el interior, asegurándose de que el $ ES jQuery. Esto se usa comúnmente para proteger el código que usa $ especialmente cuando se usa jQuery junto con otras bibliotecas que usan $ como mootools.


ejemplo, si usted ha tenido este código en el <head>

<!--load jQuery--> 
<script src="jquery.js"></script> 

<script> 
    //"$" is jQuery 
    //"jQuery" is jQuery 
</script> 

<!--load another library--> 
<script src="anotherlibrary.js"></script> 

<script> 
    //"$" is the other library 
    //"jQuery" is jQuery 

    //out here, jQuery code that uses "$" breaks 

    (function($){ 
     //"$" is jQuery 
     //"jQuery" is jQuery (from the outside scope) 

     //in here, jquery code that uses "$" is safe 

    }(jQuery)); 

</script> 
+0

¡Tiene sentido! ¡Gracias! – reach4thelasers

+0

"$" es la otra biblioteca cuando anotherlibrary.js definió $ como global. creo –

1

Para usar $ 'con seguridad'. La mayoría de los desarrolladores se sienten más cómodos con '$' en lugar de jQuery.

Al usar $ como global, puede entrar en conflicto con otras bibliotecas JS.

0

Esto si para asegurarse de que su espacio de nombre/alcance usa $ como jQuery y no otras bibliotecas JS como Prototype, que usa $, también.

1

Esto es para poder usar el atajo $ as para jQuery. Esto a veces puede colisionar con otras bibliotecas si no lo encapsula de esta manera.

Cuestiones relacionadas