Foros del Web » Programando para Internet » Javascript »

ejecutar funcion pasada como parametro

Estas en el tema de ejecutar funcion pasada como parametro en el foro de Javascript en Foros del Web. Pues eso, como puedo ejecutar una funcion que he pasado por paramtero... funcion x(a,b,c()) { c(); }...
  #1 (permalink)  
Antiguo 26/02/2006, 17:06
Avatar de Necros  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 431
Antigüedad: 22 años, 3 meses
Puntos: 0
ejecutar funcion pasada como parametro

Pues eso, como puedo ejecutar una funcion que he pasado por paramtero...

funcion x(a,b,c())
{
c();
}
__________________
By NeCrOS
FrEe WoRlD is FrEe CoDE
http://www.NeCrOS.com
  #2 (permalink)  
Antiguo 26/02/2006, 17:13
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola Necros:

Si quieres pasar una función como parámetro debes olvidarte los paréntesis, porque en tal caso lo que estás pasando es el resultado (se ejecuta)...

Dentro del bloque de la función que recibe el parámetro le pones los paréntesis y yastá...

funcion x(a,b,c)
{
c();
}

Si es una función global, puedes pasarla como cadena y convertirla a función especificando que se trata de una dependencia del objeto window (y también añadiéndole los paréntesis)... o una tercera posibilidad sería ponerle el eval o un "setTimeout", pero estas dos últimas opciones, se trata de posibilidades que no son necesarias.

funcion x(a,b,c)
{
window[c]();
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 27/02/2006, 02:18
Avatar de Necros  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 431
Antigüedad: 22 años, 3 meses
Puntos: 0
El problema lo tenemos si deseamos pasar parámetros en la función, que es mi caso.
__________________
By NeCrOS
FrEe WoRlD is FrEe CoDE
http://www.NeCrOS.com
  #4 (permalink)  
Antiguo 27/02/2006, 02:52
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Si quieres pasar parámetros, los puedes poner dentro de los paréntesis, como cualquier paso de parámetros... suponiendo que los parámetros son a, b (que hasta ahora no sé su utilidad, tendrías que poner:

funcion x(a,b,c)
{
c(a, b);
}

Si es otra cosa, explícate mejor, a ver si te podemos ayudar.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 27/02/2006, 03:32
Avatar de Necros  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 431
Antigüedad: 22 años, 3 meses
Puntos: 0
Estamos cerca, el problema es que los parametros los obtengo en el hilo donde paso como paramtero la funcion...

x (a,b,c(kk1,kk2))


funcion x(a,b,c)
{
//ejecutar C, donde C ya es pasado con los parametros
}
__________________
By NeCrOS
FrEe WoRlD is FrEe CoDE
http://www.NeCrOS.com
  #6 (permalink)  
Antiguo 27/02/2006, 03:50
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Entonces, solo me queda decirte que pongas "c" dentro de un "eval"

funcion x(a,b,c)
{
eval(c); // ya nos dirás
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:22.