Есть много понятий, которые незаменимы в JavaScript, вот несколько странных частей JavaScript, где вы можете легко ошибиться. Но также эти концепции необходимы вам, чтобы быть «вундеркиндом» JS.

Функции — объект первого класса

Каждая функция в JavaScript является функциональным объектом. В JavaScript функции — это объекты первого класса или граждане первого класса. У них есть свойства и методы, как и у любого другого объекта в JavaScript, только разница между другими объектами заключается в том, что функции могут быть вызваны. Функция может быть назначена переменной, передана в другую функцию или возвращена функцией, присвоена функция массиву и приготовлена ​​вам кофе.

Всегда помните, что функция является экземпляром object .

function JonSnow() {
  // You know(do) nothing
}
console.log(JonSnow instanceof Object);  //true

В приведенном выше примере вы можете видеть, что переменная myfunction хранит функцию add , которая принимает параметр в качестве обратного вызова. Затем есть функция logger(), которая передается в качестве параметра функции add(), которая вызывается внутри функции add(), а функция logger() возвращает другую функцию done().

Здесь функции func1(), func2() and func2 назначены массиву arr[]. И каждая функция вызывается циклически по этому массиву arr[].

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