Foros del Web » Programando para Internet » Javascript »

Utilizar una función como variable?

Estas en el tema de Utilizar una función como variable? en el foro de Javascript en Foros del Web. Hola a todos. Me gustaría saber si es posible usar una función como variable. Os pongo un ejemplo concreto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver ...
  #1 (permalink)  
Antiguo 10/07/2011, 05:46
 
Fecha de Ingreso: agosto-2008
Mensajes: 49
Antigüedad: 15 años, 8 meses
Puntos: 0
Utilizar una función como variable?

Hola a todos. Me gustaría saber si es posible usar una función como variable.

Os pongo un ejemplo concreto:

Código Javascript:
Ver original
  1. function sumar(){
  2.     var a = 10;
  3.     var b = 5;
  4.     var c = a + b;
  5.     return c;
  6. }
  7.  
  8. if (sumar() < 100){
  9.    ....
  10. }

Un saludo.
  #2 (permalink)  
Antiguo 10/07/2011, 06:04
 
Fecha de Ingreso: junio-2011
Mensajes: 89
Antigüedad: 12 años, 10 meses
Puntos: 7
Respuesta: Utilizar una función como variable?

Claro que puedes, la palabra reservada return sirve para que cuando la funcion se realice esta devuelva un valor que suele ser resultado de la funcion, es decir si tu tienes una funcion que realice una suma, la funcion devolvera el resultado de esta, vamos que cuando utilices suma() equivaldrá a un valor que sera el que devuelva con return.
  #3 (permalink)  
Antiguo 10/07/2011, 06:17
 
Fecha de Ingreso: agosto-2008
Mensajes: 49
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Utilizar una función como variable?

Muchas gracias.
  #4 (permalink)  
Antiguo 10/07/2011, 06:23
 
Fecha de Ingreso: agosto-2008
Mensajes: 49
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Utilizar una función como variable?

Cuestión 2:

Se puede hacer esto?
Código Javascript:
Ver original
  1. sumar()++;

Un saludo.
  #5 (permalink)  
Antiguo 10/07/2011, 06:45
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Utilizar una función como variable?

No creo, pero si almacenas el valor en una variable no hay problema:
Código Javascript:
Ver original
  1. var suma = sumar(); // 15
  2. suma++; // 16
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #6 (permalink)  
Antiguo 10/07/2011, 08:09
 
Fecha de Ingreso: junio-2011
Mensajes: 89
Antigüedad: 12 años, 10 meses
Puntos: 7
Respuesta: Utilizar una función como variable?

Vamos a ver una funcion con valor de retorno no es una variable, no la puedes tratar como tal. Cuando ponemos suma() equivale a un numero, no a un espacio de memoria reservado para guardar numeros.

Imaginate que suma() devuelve un numero, 15. Si haces un incremento no selviria para nada ya que cuando tu llamas a una funcion se ejecutan el conjunto de ordenes programadas en ella. No guarda el valor sino que realiza operaciones que daran como resultado un numero. Es decir que si tu haces suma()++; tendras 16, pero si vuelves a llamar a suma() no tendra 16 sino que volvera a ejecutar las ordenes que programes en dicha funcion.

No se si es posible esto: suma()++;
Pero si tu lo que quieres es por ejemplo un if que donde aparezca esto:
Código:
if(suma()++ < x) {
.
.
.
}
Seria mejor usar:
Código:
if((suma()+1) < x) {
.
.
.
}
Otra cosa, si tu tienes una funcion que retorne un valor y no le pones parametros esta funcion tendra siempre el mismo valor de retorno, si es asi sera mejor que guardes una varible con ese valor, es decir si la ese valor tu sabes que va a ser siempre 15 declara una varible que valga 15, y te quitas de problemas y ademas tendra mejor rendimiento tu pagina.

ESPERO HABERTE ACLARADO TODO
  #7 (permalink)  
Antiguo 10/07/2011, 08:46
 
Fecha de Ingreso: agosto-2008
Mensajes: 49
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Utilizar una función como variable?

Perfectamente.

Muchas gracias a todos por la ayuda.

Un saludo.

Etiquetas: Ninguno
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 01:19.