Funciones y Condicionales en javascript

Iniciado por Diesan Romero, 9 Marzo 2017, 05:16 AM

0 Miembros y 1 Visitante están viendo este tema.

Diesan Romero

Código (javascript) [Seleccionar]
if(x(a,b,m)){
  function x (a,b,m){
  m = parseInt(a) * parseInt(b);
  return m;
}}
 
if(x(a,b,s)){
   function x (a,b,s){
   s = parseInt(a) + parseInt(b);
  return s;
}
}

document.write(x(2,2,m));


Aquí expresó que si colocó el siguiente callback x(a,b,m) entonces se ejecute al función, y si colocó este x(a,b,m) haga lo mismo pero con otra función, ahora mi duda es, las dos funciones se pueden llamar iguales?

Le he puesto el parámetro m a una x(a,b,m) refiriéndome a la multiplicación, ya que ese parámetro va a ser igual a la multiplicación de los otros dos y a su vez es el return de la función para que se pueda mostrar, y con otra x(a,b,m) ya lo probé y no me sale nada... se puede hacer la idea que expongo?

engel lex

primero
ese codigo no corre, no están definidas las variables a, b, m ni s en el scope general, así como tampoco x... así que apenas el cursor llegue a linea 1 fallará, igual que en la 7 y en la 14

segundo
si la funcion x en linea 1 retorna algo difente de 0 simplemente se hará una sobrecarga a la función x y listo, igual para el if de la linea 7

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Diesan Romero

#2
Cita de: engel lex en  9 Marzo 2017, 05:25 AM
primero
ese codigo no corre, no están definidas las variables a, b, m ni s en el scope general, así como tampoco x... así que apenas el cursor llegue a linea 1 fallará, igual que en la 7 y en la 14

segundo
si la funcion x en linea 1 retorna algo difente de 0 simplemente se hará una sobrecarga a la función x y listo, igual para el if de la linea 7



Me quieres decir que cuando yo pongo if( x(a,b,s)) no está siendo tomado como un callback de una funcion sino como variables no definidas?


Lo que quiero es que según el callback de la función se ejecute. Si el callback es x(a,b,s) se ejecute la función esa y si es x(a,b,m) se ejecute esa función... a y b son los número y m,s es el valor de la operación que se va a retornar dependiendo el parámetro que se elija.


· No hacer doble post
>aquí las reglas del foro
-Engel Lex

engel lex

#3
tienes que recordar que el programa corre con un "cursor" secuencial, así que lo primero que verá será la linea 1 y verá

Código (javascript) [Seleccionar]
if(x(a,b,m)){

así que intentará resolver

Código (javascript) [Seleccionar]
x(a,b,m)

con lo que sabe, en este punto conoce algunos objetos (document, window, entre otros) pero ninguno x, a, b, m

esto no es un callback, un callback es cuando se pasa una función como parametro a otra, esperando que la otra la llame cuando la necesite


ejemplo

Código (javascript) [Seleccionar]
function suma_de_cuadrados(funcion_callback){
   var cuadrado_a, cuadrado_b;
   cuadrado_a = funcion_callback(4);
   cuadrado_b = funcion_callback(9);
   return cuadrado_a+cuadrado_b
}
function otro(parametro){
  return parametro*parametro
}
console.log(suma_de_cuadrados(otro));


esto el interprete lo convertirá en

Código (javascript) [Seleccionar]
function suma_de_cuadrados(){
   var cuadrado_a, cuadrado_b;
   cuadrado_a = otro(4);
   cuadrado_b = otro(9);
   return cuadrado_a+cuadrado_b
}
function otro(parametro){
  return parametro*parametro
}
console.log(suma_de_cuadrados());


observa que "otro" se pasa sin los parentesis cuando se pasa como callback, ya que se está pasando como variable, si pusieras

Código (javascript) [Seleccionar]
console.log(suma_de_cuadrados(otro()));

el interprete intentaría ejecutar primero que nada otro para obtener su respuesta y ese valor pasarlo a suma_de_cuadrados

esto es parte de la respuesta a tu pregunta si las variables pueden almacenar funciones




Cita de: Mago Diesan en  9 Marzo 2017, 05:28 AM
Lo que quiero es que según el callback de la función se ejecute. Si el callback es x(a,b,s) se ejecute la función esa y si es x(a,b,m) se ejecute esa función... a y b son los número y m,s es el valor de la operación que se va a retornar dependiendo el parámetro que se elija.

lo que dices no tiene pie ni cabeza, lo que quieres es que la función antes de evaluar, evalue que debe evaluar para ejecutarlo y luego evaluarlo por primera vez
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

ThinkByYourself

#4
Hay que diferenciar entre:

Código (javascript) [Seleccionar]
var f = function() {};
function ff() {};


Y:

Código (javascript) [Seleccionar]
var a = f("texto", var2, var2);
var b = ff("texto", var1, var2);


Lo primero son funciones, y lo segundo son llamadas a funciones.

Los primeros serán funciones seguro.
Los segundos, no se sabe. Pueden ser cualquier cosa. Aunque aquí serán undefined.

Saludos
No te voy a engañar.
Todos hemos sido programados para normalizar la psicopatía de las élites económicas y políticas, y para realimentar su patrón de ciega codicia.

eLank0

El código del principio functiona cambiando function a() {} por var a = function() { } porque el hecho de poner var implica crear variables globales.

Salu2!

engel lex

Cita de: eLank0 en  9 Marzo 2017, 17:46 PM
El código del principio functiona cambiando function a() {} por var a = function() { } porque el hecho de poner var implica crear variables globales.

Salu2!

no, no lo hace lee mi primer comentario
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.