w3schools propias parametros llamar funciones funcion crear con codigos anonima jquery closures dollar-sign

parametros - funciones propias jquery



jQuery signo de dólar($) como argumento de función? (4)

Cuando veas:

(function() { // all JS code here })();

Se conoce como función anónima autoinvocatoria . La función se ejecuta tan pronto como se analiza debido a la adición de () al final (así es como se ejecutan las funciones js).

Tenga en cuenta que las abrazaderas exteriores adicionales son solo una convención, también podría escribirlo como sigue:

function() { // all JS code here }();

Pero esa convención se usa mucho y debe mantenerse.

(function($) { // all JS code here })(jQuery);

Aquí, $ está asignado al objeto jQuery para que pueda usar $ lugar de la palabra clave jQuery . También podría poner algún otro personaje allí:

(function(j) { // all JS code here })(jQuery);

Aquí, j se asigna al objeto jQuery lugar.

Observe también que los argumentos especificados para la función de invocación automática permanecen dentro del alcance de esa función y no entran en conflicto con el ámbito externo / variables.

Yo había escrito un artículo sobre el tema, por favor échale un vistazo:

Entiendo los cierres de JavaScript, y he visto esto hecho en JS nativo:

(function () { // all JS code here })();

Pero, ¿qué significa agregar la especia jQuery?

(function ($) { // all JS code here })(jQuery);


Es una forma de asignar jQuery a $ de una manera para que no todos los códigos en una página lo vean.

Tal vez tenga una secuencia de comandos existente que usa jQuery que le gustaría volver a usar, pero también utiliza un prototipo que también usa $ en la misma página.

Al envolver cualquier jQuery usando código en esa construcción, redefine $ a jQuery para la parte contenida sin entrar en conflicto con otro código en la página.


Hay dos razones para pasar jQuery a un cierre de esta manera.

Con mucho, la más importante es que hace que su código funcione en páginas que usan el modo "sin conflicto" de jQuery, que permite el uso de jQuery junto con otras bibliotecas que desean tener control sobre $ global. Por esta razón, la técnica (function($) { ... })(jQuery) es muy recomendable cuando se escriben complementos jQuery.

El segundo motivo es que hace $ una variable local en el alcance de la función autoejecutable y el acceso variable local es (marginalmente) más rápido que el acceso variable global. Personalmente, no considero que esto sea una razón muy convincente: no puedo imaginar un escenario en el que la sobrecarga de usar jQuery en lugar de los métodos DOM sea aceptable, pero el acceso a jQuery como variable global no sería aceptable. :-)

Diría que la mejor razón para usar esta técnica cuando no se escribe un plugin es la consistencia: es menos probable que te olvides de hacerlo cuando es importante si tienes el hábito de hacerlo cuando no lo es. . Además, nunca se sabe cuándo tendrá la oportunidad de reciclar el código.


(function() { // all JS code here })();

Es una Expresión de Función Invocada Inmediatamente ( IIFE ), pronunciada "iffy". Algunas personas también las llaman "funciones anónimas autoejecutables" o simplemente "funciones autoejecutables".

(function(aParameter) { alert(aParameter); // will alert "an argument" })("an argument");

Aquí hay un IIFE que toma el parámetro ''aParameter'' y se pasa el argumento "a argument".

(function($){ alert($(window).jquery); // alert the version of jQuery })(jQuery);

Este es similar, pero "jQuery" (LA instancia de objeto jQuery) es el argumento para el IIFE, y en este caso, jQuery se pasa como el parámetro ''$''. De esta forma, simplemente escribiendo ''$'', el cuerpo del IIFE tiene acceso a jQuery y a sus miembros. Esta es una convención jQuery común, y es común que las personas que escriben complementos jQuery mantengan esta convención de esta manera.

El código anterior no solo mantiene la convención jQuery, sino que también garantiza que ni usted ni ninguna otra persona quiebren accidentalmente esa convención. Por ejemplo, tome el siguiente código:

var $ = function() { alert(''foo''); }

Este código convierte ''$'' en algo que definitivamente no es jQuery. Si alguien hizo esto en otro código fuera de tu código de complemento, y luego no pasaste explícitamente jQuery como ''$'' a tu complemento, entonces no podrías usar ''$'' como jQuery como lo haces normalmente.