Функции в JavaScript могут быть переданы в качестве значений другим функциям и выполнены.Например:
function execute(fn)
{
fn(); // execute function passed as a parameter
}
var alertHelloWorld = function ()
{
alert("Hello World");
};
execute(alertHelloWorld); // this will alert "Hello World"
Итак, что делает плагин jQuery Autocomplete, кеширует все функции, переданные в его инициализаторе, и затем выполняет их, когда это необходимо.IE: когда данные должны быть обработаны или когда данные были обработаны.
Вот пример, несколько похожий на плагин автозаполнения:
// 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"); }
});
Параметры также могут быть переданы изфункция, выполняющая другую функцию:
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);
});