2010-10-06 6 views
1

J'essaie de comprendre les fonctions de rappel en javascript.Problème avec la fonction de rappel en javascript

Il y a une fonction quelque chose comme

function load() { 

var func = function(data){ 
    /// 

}; 
} 

Quelqu'un peut-il me expliquer d'où sera retourné le paramètre « data », comme je ne vois pas une variable déclarée dans le fichier.

Répondre

3

En JavaScript, les fonctions sont first class objects. Vous pouvez les stocker dans des objets (variables) et les passer comme arguments aux fonctions. Chaque fonction est en fait un objet Function.

Vous n'avez pas de fonction de rappel dans cet exemple. Vous en auriez un lorsque vous passeriez une fonction en tant qu'argument à une autre fonction.

C'est une fonction qui appelle une fonction de rappel lorsqu'il est prêt:

function load (ready_callback) { 
    // do some stuff 

    ready_callback(); 
} 

qui peut être invoqué comme suit:

function callback() { 
    alert('Ready'); 
} 

load(callback); 

Ou:

var callback = function() { 
    alert('Ready'); 
} 

load(callback); 

Ou:

load(function() { 
    alert('Ready'); 
}); 

Les trois exemples ci-dessus sont à peu près équivalents.

Les fonctions de rappel sont généralement utilisées pour la gestion des événements et les méthodes asynchrones. Un exemple est la méthode setTimeout(), qui appelle une fonction de rappel lorsqu'un délai d'expiration expire:

var timerCallback = function() { 
    alert('Timeout Expired!'); 
} 

setTimeout(timerCallback, 5000); // Set the timeout to 5 seconds