Ответ
Функции в JavaScript являются объектами первого класса, что означает их можно:
- Присваивать переменным
- Передавать как аргументы
- Возвращать из других функций
Особенности:
- Поддерживают замыкания (доступ к внешним переменным)
- Имеют контекст выполнения (
this) - Можно вызывать разными способами:
func(),new Func(),func.call(),func.apply() - Есть Function Declaration и Function Expression
- У функций есть свойства (name, length) и методы (bind, call, apply)
Пример:
// Function Declaration
function sum(a, b) {
return a + b;
}
// Function Expression
const multiply = function(a, b) {
return a * b;
};
// Стрелочная функция (не имеет своего this)
const divide = (a, b) => a / b;