Me preguntaba, ¿cómo funciona el $. en $ .ajax ({...}); ¿trabajo? no tiene sentido para mí. Claro .ajax como miembro tiene sentido, pero $ no es un nombre de variable? ¿O es eso? ¿Cómo se define?
Respuesta
$ es lo mismo que jQuery. Es decir, puede escribir jQuery.ajax (...) etc.
La parte confusa es $ es un carácter legal en los nombres de las variables de Javascript. No tiene ningún significado especial, como lo hace en PHP o Perl, por ejemplo.
De la fuente:
// Map over jQuery in case of overwrite
_jQuery = window.jQuery,
// Map over the $ in case of overwrite
_$ = window.$,
jQuery = window.jQuery = window.$ = function(selector, context) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init(selector, context);
},
Es una función (objeto de primera clase) con propiedades, tales como la función ajax
mencionas.
"$" es un carácter válido para nombres de variables, y como puede ver en el fragmento de código, $
es lo mismo que jQuery
.
$ es uno de los únicos caracteres legales que se pueden usar en los nombres de las variables de Javascript. JQuery y otras bibliotecas aprovechan que inicializar $ es una función que inicializa el objeto jQuery.
si no recuerdo mal el código parece algo así como lo siguiente:
$ = window.jQuery = function(){
return new jQuery(args);
}
$ Esto se define dentro de la biblioteca jQuery para ser una referencia a jQuery más corto. Puede descargar la biblioteca y ver las primeras líneas:
var
// Will speed up references to window, and allows munging its name.
window = this,
// Will speed up references to undefined, and allows munging its name.
undefined,
// Map over jQuery in case of overwrite
_jQuery = window.jQuery,
// Map over the $ in case of overwrite
_$ = window.$,
Este "ventana $", "$" Pertenece al medio ambiente objeto de la ventana.
En javascript, las funciones son objetos (que pueden contenerse mediante variables). Como tales, pueden tener propiedades (y métodos que son solo propiedades con funciones como valores). Pruebe esto:
function test() {
alert("hey!");
}
test.foo = function (msg) {
alert("you said: "+msg);
};
test(); //alerts "hey!"
test.foo("123") //alerts ""you said: 123".
//note that I'm not calling test().foo(),
//as test() returns nothing, though it could
//return an object (with a foo() or any other method itself!)
esto es algo así como lo que sucede con jQuery.
Como se explica en una serie de recursos de JavaScript, incluyendo Mozilla's JavaScript Guide:
identificadorUna JavaScript debe comenzar con una letra, subrayado (_) o un signo de dólar ($); los caracteres siguientes también pueden ser dígitos (0-9). Debido a que JavaScript distingue entre mayúsculas y minúsculas, las letras incluyen los caracteres "A" a "Z" (mayúsculas) y los caracteres "a" a "z" (minúsculas).
Así que los siguientes son todos legales (aunque poco aconsejable) en JavaScript:
var $ = function() {};
var ____ = 0;
var __$__$ = 1;
function _$_$_$_(_, __, $_$) {
return (_ * __) + $_$;
}
alert(_$_$_$_(3,2,1)); // shows 7
- 1. jQuery idioma planificador de evento
- 2. JavaScript idioma: algo función &&()
- 3. jquery .val() + = idioma
- 4. ¿Se considera jQuery un idioma?
- 5. Localización y JQuery/JavaScript
- 6. Javascript book que enseña javascript el idioma, no dom
- 7. Multi idioma para un sitio web (php y javascript)
- 8. Javascript y jQuery (FancyBox) pregunta
- 9. Aprendiendo jQuery y mejorando en Javascript
- 10. Múltiples mensajes de error de idioma en javascript
- 11. Nombre de idioma del código ISO 639-1 en Javascript
- 12. NLTK y detección de idioma
- 13. jQuery Timeago timestamps: ¿Cómo elegir el idioma?
- 14. JQuery/Javascript y el uso de operadores &&
- 15. ¿Cuál es la correlación entre ECMAScript 5 y JavaScript 1.8.5 en términos de características de idioma?
- 16. qué idioma usan google y otros
- 17. Rango en Javascript/jQuery?
- 18. Escucha de funciones en javascript y/o jQuery
- 19. OOP Java-esque en JavaScript y un error de jQuery
- 20. JavaScript y jQuery; cómo hacer ajuste de arrastrar y soltar
- 21. Javascript y jQuery no seguro sobre https
- 22. Sistema multiplataforma y complemento de idioma
- 23. Significado del programa en su idioma y programa en su idioma
- 24. Idioma de rieles para .present? y .any?
- 25. idioma de copiar y cambiar, con herencia
- 26. jQuery/JavaScript - event.target.id en Firefox
- 27. JavaScript/jQuery clearInterval en .each
- 28. buenos consejos y trucos para "racionalizar" su Javascript y jQuery
- 29. Javascript: utilizar XPath en jQuery
- 30. jQuery-no en JavaScript puro
Es un nombre de función, tienen una lectura de la fuente de jQuery. La función devuelve efectivamente un objeto JQuery que tiene el miembro 'ajax'. – Lazarus
@Lazarus: en realidad, aunque la función $ devuelve un objeto jQuery cuando se llama, eso no es lo que está sucediendo aquí. $, como todas las funciones en JS, es un objeto y puede tener sus propias propiedades (es decir, ajax). el objeto jQuery devuelto al llamar $ ("") no tiene una propiedad ajax (prueba typeof $ (""). ajax en comparación con typeof $ .ajax) – figha