Функции - ключевая концепция в JavaScript.
Важнейшей особенностью языка является первоклассная поддержка функций (functions as first-class citizen). Любая функция это объект, и следовательно ею можно манипулировать как объектом, в частности:
- передавать как аргумент и возвращать в качестве результата при вызове других функций (функций высшего порядка);
- создавать анонимно и присваивать в качестве значений переменных или свойств объектов.
В языке программирования JavaScript функции могут быть созданы несколькими способами:
- Объявление функции:
function add(a, b) {
return a + b;
}
Функция создается с помощью ключевого слова “function”, за которым следует имя функции (“add” в этом примере), список параметров в скобках и тело функции в фигурных скобках.
- Выражение функции:
var add = function (a, b) {
return a + b;
};
Функция создается путем присвоения анонимной функции переменной “add”. В этом примере функция не имеет имени, но может быть вызвана через переменную “add”.
- Конструктор функции:
var add = new Function("a", "b", "return a + b");
Функция создается с помощью конструктора Function, который принимает список параметров и тело функции в виде строки.
Анонимная самовызывающаяся функция - это функция, которая определяется и выполняется немедленно, без необходимости вызова ее явно отдельно. Она создается путем обертывания функции в круглые скобки, за которыми следует еще одни круглые скобки, содержащие аргументы функции (если они есть), после чего вызывается с помощью оператора вызова функции ”()“. Например:
(function () {
console.log("Эта функция выполнится сразу после определения");
})();
Эта функция не имеет имени, но определяется и выполняется немедленно при загрузке скрипта. Она может использоваться для создания локальной области видимости, которая защищает переменные от глобальной области видимости, или для выполнения инициализации приложения.