Foros del Web » Programando para Internet » Javascript »

Pasar una función al callback, forma correcta de hacerlo

Estas en el tema de Pasar una función al callback, forma correcta de hacerlo en el foro de Javascript en Foros del Web. Buenas! Digamos que tengo un objeto con un método que al realizarse devuelve un objeto (la referencia vaya) en modo de callback. Lo que quiero ...
  #1 (permalink)  
Antiguo 11/09/2017, 09:38
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 12 años
Puntos: 5
Pregunta Pasar una función al callback, forma correcta de hacerlo

Buenas!

Digamos que tengo un objeto con un método que al realizarse devuelve un objeto (la referencia vaya) en modo de callback.

Lo que quiero es ejecutar otro método de este mismo objeto utilizando como parámetro el objeto que me devuelve el callback del otro método, de la siguiente forma funciona sin problemas:

Código:
mainView.create(function(view) {mainView.draw(view)});
pero creo que no es la adecuada, intento haciéndolo así:

Código:
mainView.create(mainView.draw(view));
Pero me da error (no se pasa el parámetro del callback)

También estaba pensando que esto debería hacerse así:

Código:
mainView.create(this.draw(view));
pero me da error ("this.draw is not a function"), ¿no se supone que this hace referencia a mainView?

Bueno, a ver si me podéis ayudar un poco jeje.

¡Gracias!
__________________
http://www.pkmrpg.es
  #2 (permalink)  
Antiguo 12/09/2017, 03:44
Avatar de Alexis88
Colaborador
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.225
Antigüedad: 5 años, 10 meses
Puntos: 859
Respuesta: Pasar una función al callback, forma correcta de hacerlo

En realidad sí es la manera adecuada. Una función (los métodos son funciones) puede ser parámetro de otra solo si es pasada nominalmente (sin los paréntesis que la ejecuten) o como una función anónima.

Código Javascript:
Ver original
  1. funcionA(funcionB);
  2.  
  3. funcionX(function(){/* instrucciones */});

Para que puedas utilizar this como referencia al objeto, tendría que estar en el contexto del mismo.

__________________
«Laissez faire et laissez passer, le monde va de lui même»



La zona horaria es GMT -6. Ahora son las 20:08.