Есть много понятий, которые незаменимы в 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 на новый уровень функционального программирования.