2012-01-15 6 views
5

¿Hay alguna otra manera mejor de crear una función de devolución de llamada para alguna función aleatoria?La mejor manera de crear una función de devolución de llamada

var showObj = function(obj,callback) { 
    return setTimeout(function() { 
     if(opts.centerObj == true) { 
      var cssProps = getProps(obj); 
      obj.css(cssProps).fadeIn('slow'); 
     } 
      else { 
       obj.fadeIn('slow'); 
      } 
     if(typeof callback == 'function') { 
      callback.call(this); 
     } 
    }, 1500); 
} 

La función de devolución de llamada no tiene ningún parámetro cuando lo utilizan, sólo lo hago de esta manera:

showObj(obj,function(){ 

/* Some Callback Function */ 

}); 
+0

Así que su pregunta es si hay una forma mejor que pasar una función anónima a 'showObj' o qué? –

+0

¿Qué hay de malo con su implementación actual? – TJHeuvel

+0

@Felix Kling, No, si mi sintaxis es correcta, la función funciona bien (la función de devolución de llamada) si la llamo, y también si hay otra forma de agregar/definir una función de devolución de llamada a alguna función aleatoria. – Roland

Respuesta

3

supongo que no hay manera de 'malo' o 'mal' en particular para invocar cualquier método (de devolución de llamada). Te está yendo bien allí, también buscando una función.

Mi única sugerencia estaría allí, no para invocar la función con .call(). A menos que necesite pasar el contexto actual simplemente llame al callback();. Es decir, porque las invociones .call() y .apply() son hasta un 30% más lentas.

2

Esta es una de las funciones de devolución de llamada más completas que he visto. Entonces la respuesta es no, este es uno de los mejores.

Cuestiones relacionadas