Найти тему
Сергей Б.

JavaScript/Анонимные функции

При использовании function expression задавать имя функции не обязательно. Это может быть в тех случаях, когда мы попросту не используем имя функции.

Например - передача одной функции в качестве аргумента в другую:

function callFunction(fn) {
var r = fn();
console.log('Результат работы функции:', r);
}
callFunction(function() {
return 10 + 10;
});

Объявлена функция callFunction, которая имеет параметр с именем fn. Задача callFunction - принять функция в качестве аргумента, выполнить эту функцию и вывести результат ее выполнения в консоль.

Как видно из кода, при вызове функции callFunction мы просто передаем другую функцию, объявленную при помощи function expression.

Ранее говорилось, что, если функция объявлена как часть другого выражения, то считается, что такая функция объявлена при помощи function expression.

Но интерес здесь представляет то, что функция, передаваемая в callFunction в качестве аргумента является анонимной, то есть не имеет имени. Да, внутри callFunction она будет доступна по имени параметра fn, но на момент передачи, функция не имеет имени.