2011-01-29 11 views
6

lo encuentro en todas partes, así.

function($) { 
    $.test = { some code } 
} 

¿qué significa?

Respuesta

7

usted debe pensar sobre el código jQuery como una división entre dos maneras de las funciones de llamada:

  1. Métodos de selecciones. Esta es la técnica estándar "encuentra algunos elementos, haz algo con ellos". Es código como $('p').val(), $('div').prepend(), etc.
  2. Métodos sin selecciones. Estas son funciones que no requieren que haga una selección antes de llamar a una función. Estas son funciones como $.ajax, $.param, $.each. Por conveniencia, son propiedades de la variable global $, que es la biblioteca jQuery. A menudo, no son específicos de jQuery, pero son piezas de código útiles para incluir en la biblioteca.
+0

Clavado. Solo había escrito cosas como $ ('selector'), do_ algo. Me parece claro, ahora, que $ .stuff crea nuevos métodos para objetos jquery :) –

9

Piense en $ como cualquier otra variable. Para jQuery, es el objeto jQuery, que es bastante poderoso. Pero es como cualquier otra variable; podría escribir su propio $ si quisiera, por ejemplo.

Es un nombre de variable inusual, sí, pero no tiene nada de mágico. El .something es solo una propiedad de la variable $. No es diferente de escribir obj.something, excepto que el nombre de la variable es $ en su lugar.

El otro carácter no alfanumérico que puede usar en JavaScript como nombre de variable es _ (el guión bajo). Se usa en algunas otras bibliotecas, como underscore.js. Pero, una vez más, no hay nada especial en usar _.

+0

'$' es un estándar utilizado para variables en varios otros idiomas. No hay nada mágico al respecto. – Raynos

+0

había visto $ variables anteriormente, pero era la primera vez que veía $ todo por sí mismo. –

+0

No sé si el '$' es el _chicken_ o el _egg _.... pero a menudo no puedo evitar preguntarme si no podría ser simplemente el '$' que hace JS ... "entonces f- ing molesto ". –

4

la variable $ es un alias del objeto jQuery/'espacio de nombres'. Entonces cuando ves $.function() estás llamando a un método llamado 'función' en el objeto jQuery. En su código de ejemplo proporcionado un objeto llamado test se está adjuntando al objeto jQuery. si escribió $.test = function() { } estaría adjuntando una función (método) en lugar de un objeto.

Cuestiones relacionadas