Все функции в JavaScript являются вызываемыми объектами. Они являются экземплярами функционального типа. Поскольку функции являются объектами, они имеют свойства и методы, как и другие объекты.
Каждая функция имеет два свойства: длина и прототип.
Свойство length определяет количество именованных аргументов, указанных в объявлении функции, а прототип ссылается на фактический объект функции.
Хранение функций в переменных
Функции в JavaScript — граждане первого класса. Другими словами, вы можете обращаться с функцией как с переменными других типов.
Следующий код объявляет функцию add() и присваивает имя функции переменной sum. И мы можем выполнить функцию Dame двумя способами, как это реализовано.
Передача функции в другую функцию
Поскольку функции являются значениями, вы можете передать функцию другой функции в качестве аргумента. Далее объявляется функция medium(), которая принимает три аргумента, третий аргумент — это функция.
Возврат функций из функций
Функции JavaScript могут возвращать функции.