Comunidad de diseño web y desarrollo en internet online

Duda con Jquery!!!!!!!

Citar            
MensajeEscrito el 01 Jun 2011 03:24 pm
buenas Recien me inicio en esto de jquery yhe encontrado la siguiente construccion

Código Javascript :

(function($){                // si le comento esto
   var initLayout = function() {
      
      $('a.lightsGal').zoomimage();
      $('a.bwGal').zoomimage({
         border: 20,
         centered: true,
         hideSource: true
      });
   
   };
   
   
   EYE.register(initLayout, 'init');
})(jQuery)    // y le comento eso tambien igual funciona ,


entonces para que sirve esa construcción de jquery o que quiere decir??

Gracias de antemano por cualquier respuesta

Por trueDavid

0 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 02 Jun 2011 06:00 pm
Saludos David.

Hay muchas librerías que utilizan la función $ lo cuál en muchos casos genera conflicto. Personalmente no soy muy amigo de utilizarla pues considero que todo debe estar encapsulado, un ejemplo de esto es Dojo que implementa namespaces para las diferentes librerías. En este caso en vez de definir una función $ nos ofrece dojo.query. Pero bueno, esto es cuento viejo así que vamos al punto.

El patrón de diseño que sugiere jQuery para escribir plugins lo que sugiere es que en el ámbito global utilicemos su namespace por principal, osea "jQuery", ya que $ es un alias de éste. El código que muestras lo que hace es crear un ambito "privado" (el del la función anonima) y ejecutar el código para definir el plugin dentro de éste. El código usa el parametro $ de dicha función:

(function($){

Luego ejecuta la función inmediatamente pasando como primer parámetro una referencia a jQuery.

})(jQuery) ;

Así, obligamos a que siempre el plugin tenga una referencia a jQuery y que ningún código que se esté ejecutando en el ambito global pueda cambiar esto. Espero haberme hecho entender, siempre he sido malo para explicar esto xD

Por jseros

Claber

116 de clabLevel

1 tutorial

Genero:Masculino  

Bogotá, Colombia

chrome
Citar            
MensajeEscrito el 02 Jun 2011 08:44 pm
jseros, es gracioso, entendi todo lo que dijiste y tiene mucho sentido. Pero, hay tantos conceptos unicos de programacion como ambitos privados, publicos y namespaces, que imagino que algun novato en programacion posiblemente no entendera :)

La mejor manera de explicarlo en mi opinion siempre ha sido explicar que es una funcion, parametros y como se ejecutan.

La siguiente es una funcion llamada "hola" y tiene un parametro llamado "persona".

Código Javascript :

function hola(persona){}


Que tambien puede ser escrita de la siguiente manera.

Código Javascript :

var hola = function(persona){}


La manera mas comun de ejecutar o correr una funcion es escribir su nombre y poner parentesis, el parametro estara dentro de los parentesis, por ejemplo usemos "Joan".

Código Javascript :

hola('Joan');


Una vez que se entiende esto, puedes aprender que existen las funciones anonimas, es decir, que no tienen nombre, por ejemplo.

Código Javascript :

function(parametro){}


Esto es muy comun en codigo que requiere de callbacks (algo que no planeo explicar aqui).

Lo siguiente que se tiene que entender es que en javascript, puedes encerrar casi todo en parentesis, por ejemplo, las siguientes lineas resultan en lo mismo.

Código Javascript :

var suma = 1 + 1;
var suma = (1 + 1);


Ademas de codigo que se ejecuta, como esa suma, tambien puedes encerrar variables, objetos y funciones.

Entonces se puede ejecutar una funcion encerrada en parentesis, ambas lineas son lo mismo.

Código Javascript :

hola('Joan');
(hola)('Joan');


Si usas este ejemplo con funciones anonimas, puedes crear el codigo y correrlo automaticamente.

Código Javascript :

(function(parametro){ }) ('Joan');


Esto es muy practico en Javascript, pues te permite usar el nombre de una variable que gustes en el codigo y luego reemplazarla por cualquier otra cosa al momento de correrla, ahorrandote los problemas de reemplazar codigo despues.

Código Javascript :

var variableb = 'esto es b';

(function(a, b, c){
alert(a);
alert(b);
alert(c);
})('variable a', variableb, 'Joan');


Eso resulta en 3 alertas, la primera sera "variable a", la segunda es "esto es b" y la tercera sera "Joan".

jQuery usa esto para "reemplazar" la variable $ con jQuery. Entonces las siguientes lineas de codigo seran lo mismo.

Código Javascript :

$("#id");
jQuery("#id");


Si esto no se entendio, no se como mas explicarlo :)

Por NEO_JP

BOFH

5724 de clabLevel

13 tutoriales
12 articulos

Genero:Masculino   Anime Bloggers Premio_Secretos Team Cristalab

Front-end Developer en Washington, DC

chrome
Citar            
MensajeEscrito el 09 Jun 2011 01:14 pm
perfectamente explicado, gracias!!!

Por chechopoker

91 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.