Все функции в JavaScript являются вызываемыми объектами. Они являются экземплярами функционального типа. Поскольку функции являются объектами, они имеют свойства и методы, как и другие объекты.

Каждая функция имеет два свойства: длина и прототип.

Свойство length определяет количество именованных аргументов, указанных в объявлении функции, а прототип ссылается на фактический объект функции.

Хранение функций в переменных

Функции в JavaScript — граждане первого класса. Другими словами, вы можете обращаться с функцией как с переменными других типов.

Следующий код объявляет функцию add() и присваивает имя функции переменной sum. И мы можем выполнить функцию Dame двумя способами, как это реализовано.

Передача функции в другую функцию

Поскольку функции являются значениями, вы можете передать функцию другой функции в качестве аргумента. Далее объявляется функция medium(), которая принимает три аргумента, третий аргумент — это функция.

Возврат функций из функций

Функции JavaScript могут возвращать функции.