2012-01-15 12 views
5

Czy istnieje lepszy sposób niż utworzenie funkcji wywołania zwrotnego dla niektórych funkcji losowych?Najlepszy sposób tworzenia funkcji oddzwaniania

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); 
} 

Funkcja zwrotna nie ma żadnego parametru, kiedy wykorzystują je, robię tylko tak:

showObj(obj,function(){ 

/* Some Callback Function */ 

}); 
+0

Więc twoje pytanie brzmi, czy istnieje lepszy sposób niż przekazywanie anonimowej funkcji do 'showObj' lub co? –

+0

Co jest nie tak z aktualną implementacją? – TJHeuvel

+0

@Felix Kling, Nie, jeśli moja składnia jest poprawna, funkcja działa poprawnie (funkcja wywołania zwrotnego), jeśli ją wywołuję, a także, jeśli istnieje inny sposób dodania/zdefiniowania funkcji wywołania zwrotnego do jakiejś funkcji losowej. – Roland

Odpowiedz

3

Chyba nie ma szczególnego „złe” lub „zły” sposób, aby wywołać dowolna metoda (zwrotna). Dobrze sobie z tym radzisz, sprawdzając również funkcję.

Moja jedyna sugestia będzie tam, a nie wywoływać funkcji z .call(). Jeśli nie musisz przekazywać bieżącego kontekstu, zadzwoń pod numer callback();. Oznacza to, że wywołania są o 30% wolniejsze niż w przypadku wywołań .call() i .apply().

2

Jest to jedna z najbardziej kompletnych funkcji wywołania zwrotnego, jakie widziałem. Tak więc odpowiedź brzmi nie, jest to jedna z najlepszych.

Powiązane problemy