Foros del Web » Programando para Internet » Javascript »

Return

Estas en el tema de Return en el foro de Javascript en Foros del Web. Hola. Pues esta duda la he tenido siempre xd. ¿Qué papel desempeña el típico return true / return false / return variable en una función? ...
  #1 (permalink)  
Antiguo 20/08/2008, 07:51
Avatar de Legoltaz  
Fecha de Ingreso: agosto-2008
Mensajes: 325
Antigüedad: 16 años, 2 meses
Puntos: 6
Return

Hola.

Pues esta duda la he tenido siempre xd.

¿Qué papel desempeña el típico return true / return false / return variable en una función?

Por ejemplo:

Código:
<script>
function media(n1,n2){
var resultado=(n1+n2)/2;
return resultado;
}
</script>
Es decir, si yo ahora llamo la función mediante un input (por ejemplo), no me devuelve ningún valor, no imprime el resultado.

Entonces, de qué sirve return?
  #2 (permalink)  
Antiguo 20/08/2008, 07:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 6 meses
Puntos: 839
Exclamación Respuesta: Return

Return devuelve un valor para la función y tiene muchos usos. En el caso del input, sería útil si pusieras:
Código PHP:
this.value media(0,0); 
Así tomaría el valor que devuelve la función, su uso es muy extenso, en síntesis, es el valor de retorno de la función que puede ser tomada en una variable.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 20/08/2008, 08:00
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 16 años, 2 meses
Puntos: 18
Respuesta: Return

Aquí te explican algunas utilidades de las funciones, entre ellas el uso de return. http://www.ulpgc.es/otros/tutoriales/JavaScript/cap5.htm
  #4 (permalink)  
Antiguo 20/08/2008, 08:09
Avatar de Legoltaz  
Fecha de Ingreso: agosto-2008
Mensajes: 325
Antigüedad: 16 años, 2 meses
Puntos: 6
Respuesta: Return

La verdad es que sigo sin entender su papel.

en esa misma función de ejemplo que pegué, yo creo que el return resultado no sirve de nada.

Es decir, la variable resultado ya estaba declarada, y para que la función sea útil, lo suyo es hacer que imprima por pantalla el resultado, cuando es llamada.

var resultado = (n1 + n2) / 2;
document.write(resultado);

No sería lo lógico? De veras que no entiendo lo de return xd
  #5 (permalink)  
Antiguo 20/08/2008, 08:28
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 16 años, 2 meses
Puntos: 18
Respuesta: Return

Bueno. La verdad es que la razón de ser más antigua y pura de una función es devolver un valor después de procesar una entrada como lo hacen las funciones matemáticas. Si recuerdas en la escuela algo así:

F(x) = x + 2;

Donde si traducimos eso a javascript por ejemplo sería así:

Código:
  function algo( x )
 {
     var resultado = x + 2;
     return resultado;
 }
En muchas ocaciones no vas a necesitar imprimir directamente un valor sino obtener lo que devuelve esta función y luego pasarlo como parametro a otra función para que modifique ese valor, por ejemplo:

Si quiero pasar un valor "X" a la función "F1" y luego el resultado pasarlo a la función "F2" que realizará otra operación :


Código:
function F1( x )
{
    var r1 = x + 2;
    return r1;
}


function F2( x )
{
    if( x == 2 )
        return "El numero era cero";
   else
       return "el numero no era cero";
}

var numero1 = F1( 2 );

alert( F2( numero1  ) );
Lo que hice fue pasarle el numero 2 como parámetro a la funcion F1 que luego de sumarle 2 me regresa el numero 4. Luego paso ese resultado a la función F2 que verifica si el numero era cero antes de pasarselo a la función F1.

El punto es que hay veces en que es necesario obtener los resultados de un aoperacón sin imprimirlos por pantalla, si F2 no me hubiera devuelto un valor no podria haber mostrado el alert.

Espero haberme hecho entender. Saludos...
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 17:23.