JS объект функции

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

Давайте посмотрим на примерах. Пусть у нас есть следующая функция:

javascriptfunction func(num1, num2) {
  return num1 + num2;
}

Пример свойств объекта функции:

javascriptconsole.log(func.name);   // имя функции
console.log(func.length); // количество параметров

Пример методов объекта функции:

javascriptfunc().call(2, 3); // вызывает функцию с заданными параметрами

Объекты функций создаются автоматически при определении функции и могут быть получены с помощью ключевого слова this внутри функции. К примеру, получим имя функции внутри этой функции:

javascriptfunction func(num1, num2) {
  console.log(this.name);
  return num1 + num2;
}

Все свойства и методы функции можно посмотреть в консоли, если вывести в нее функцию следующим образом:

javascriptconsole.dir(func);