Вы можете объявить функции одним из двух способов в JavaScript.
Таким образом:
function MyFunction() {
//Functiony stuff
}
И так:
var MyFunction = function() {
};
Используя второй метод, вы можете затем передать эту функцию другим функциям в качестве аргумента. Те функции, которые получают его, могут затем предоставить ему аргументы. Если вы не определите эти аргументы в своей функции, то вы не сможете получить к ним доступ. Вот еще немного:
var MyFunction1 = function(message) {
alert(message);
};
var MyFunction2 = function(alertFunction) {
if(alertFunction != null)
alertFunction("Here's another method!");
};
//You can then call MyFunction and pass it arguments, even if that argument is a function.
MyFunction2(MyFunction1);
Если бы вы не определили переменную сообщения в MyFunction1, вы бы никогда не получили сообщение, которое было передано ему через MyFunction2. Надеюсь, я не сделал это более сложным, чем нужно… По сути, вы можете передавать функции, а если вы не предоставите переменные, которые методы передадут, вы не сможете их использовать. Это то, что вы делаете, когда говорите что-то вроде:
$("MySelector").click(function(e) {
//Stuff here
});
Вы отправляете анонимную функцию в функцию щелчка. Если вы не указали переменные, которые вам передадут, вы не сможете их использовать.
Как только я понял, что вы можете сделать это давным-давно, это сильно изменило способ написания JavaScript. Я уверен, что он, вероятно, сделает то же самое для вас.