В JavaScript функции находятся на одном уровне с другими объектами - вы можете назначать их переменным и передавать их в качестве параметров.
Обычно вы объявляете функцию следующим образом:
function SomeFunc(arg1, arg2) { /* etc etc */ }
Эквивалентный путь будет:
var SomeFunc = function(arg1, arg2) { /* etc, etc */ }
... потому что, как и выше, сами функции являются значениями, которые могут быть назначены или переданы.
Многие библиотеки будут принимать функции в качестве аргументов своих собственных функций, запуская переданную функцию в любое удобное для них время (или передавая их в другом месте, как любая другая переменная). Часто это для обратных вызовов. При передаче функций в качестве аргументов, на самом деле нет необходимости давать им собственное имя, таким образом, следующее выполняет свою работу:
SomeLibrary.doSomethingThenCallback(function(arg1, arg2) {
// the doSomethingThenCallback function will decide when, if ever,
// to run this, or pass it on somewhere else, or whatever else would
// be done with any other argument value.
});