Les fonctions en JavaScript peuvent être transmises en tant que valeurs à d'autres fonctions et exécutées. .: par exemple
function execute(fn)
{
fn(); // execute function passed as a parameter
}
var alertHelloWorld = function()
{
alert("Hello World");
};
execute(alertHelloWorld); // this will alert "Hello World"
Alors, que le plug-in jQuery Autocomplete fait, la mise en cache est ce que les fonctions sont passées dans son initialiseur, puis les exécuter quand il a besoin. I.E .: lorsque les données doivent être traitées ou lorsque les données ont été traitées.
Voici un exemple, un peu similaire au plug-in Autocomplete:
// execute three functions contained in an object literal
function execute(o)
{
o.One();
o.Two();
o.Three();
};
// call "execute" passing in object literal containing three anonymous functions
// this will alert "One", then "Two", then "Three"
execute(
{
One: function() { alert("One"); },
Two: function() { alert("Two"); },
Three: function() { alert("Three"); }
});
Les paramètres peuvent également être transmis d'une fonction qui exécute une autre fonction:
function execute(fn)
{
// execute function passed as a parameter with a parameter
fn("Hello World");
};
execute(function (s)
{
// parameter "s" supplied by "execute" will contain "Hello World"
alert(s);
});
Vous vous demandez précisément sur jQueryUI , ou tout simplement sur la façon dont un plugin appelle un callback passé en option? – user113716
curieux de savoir comment jqueryUI le fait spécifiquement. Si la technique a un nom plus général, il serait intéressant de le savoir également. –