2010-06-05 8 views
7

¿Alguien puede explicar a qué se refiere exactamente la documentación jquery con esta declaración: "el argumento para escribir código JQuery a prueba de fallas utilizando $ alias, sin depender del alias global" cuando se refiere a usar lo siguiente: failsafe código jQuery

jQuery(function($) { 
}); 
He estado usando jquery por un tiempo, así que entiendo lo que este código está haciendo hasta cierto punto, pero la frase utilizada en la documentación sobre la escritura de código jquery a prueba de errores me desconcierta y no estoy seguro de si es importante o no.

Respuesta

9

El nombre de la variable $ no es exclusivo de jQuery, sino que también lo utilizan otras bibliotecas de JavaScript. Si está utilizando ambos en la misma página (quizás no de manera intencional, otra biblioteca puede ser arrastrada por un script de terceros), existe el riesgo de que la variable que cree que apunta a un objeto jQuery realmente apunta a otra cosa, lo que significa que su código romper ya que la API para la que está trabajando no existirá.

Lo que hace este código es utilizar la función global jQuery (que no entra en conflicto con ninguna otra biblioteca) a la que se le pasa una función anónima que recibe el objeto jQuery principal como parámetro. Debido a que este parámetro tiene un alcance para la función y no globalmente, nada fuera de la función puede interferir con él, y puede codificar con seguridad sabiendo que solo será un objeto jQuery a menos que lo anule usted mismo.

3

Failsafe solo se refiere a la posibilidad de que algún otro código o biblioteca también intente usar el $ como nombre var. Es mucho menos probable que otra biblioteca use el nombre jQuery, por lo que al encapsular todo en una función y pasar jquery como arguemnt ($), puede usar el $.

4

La noción está relacionada con la creación de complementos, cuando no se puede, por ejemplo, asegurarse de que $ es un alias para el objeto jQuery. La forma más segura es utilizar JQuery exclusivamente o envolverlo en un cierre si desea poder usar $ en su código de complemento:

(function($){ 
    // here code can always use $ as n alias for jQuery, regardless if the user 
    // has repointed $ to something else. 
})(jQuery); 
Cuestiones relacionadas