Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/02/2010, 19:04
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Alguien podría explicar que hace este código por favor "(function(){})()"

esa porcion crea una funcion literal o anonima e la invoca inmediatamente. al final, no existe trazo de dicha funcion porque dicha funcion literal no es almacenada en una variable o propiedad. es decir,
Código:
// funcion anonima;
function(){
// otros codigo;
}
si queremos invocar dicha funcion, tenemos que incluir los pares de parentesis al final
Código:
function(){
// otros codigo;
}() 
sin embargo, javascript indicara error de sintaxis porque entiende que no se ha formado correctamente la expresion. por esa razon, si la funcion no se va almacenar en una variable, se encierra la funcion literal dentro de un par de parentesis.
Código:

(function(){
// otros codigo;
})()
el parentesis retiene temporeramente el valor devuelto por dicha expresion que envuelve, en este caso la funcion literal. tienes que pensarlo como en la algebra: primero resolvemos los problemas dentro de parentesis y al final ese parentesis devuelve un solo valor. aqui es lo mismo, javascript primero interpreta la funcion antes de invocarla y al final devuelve una funcion. no confundas el ultimo par de parentesis, este ultimo significa invocacion porque le sigue a una funcion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 15/02/2010 a las 19:33 Razón: error gramatical