To fully understand this concept, you should first understand functional programming and the concept of first class functions.
Functional programming is a branch of discrete mathematics and a programming paradigm, in which the computation process is interpreted as the calculation of the values of functions in the mathematical sense of the latter (as opposed to functions as subroutines in procedural programming). [Wikipedia]
Function objects. For example:
SyntaxError: Unexpected token (1:8) 1 : return () ^
We now know what first-class functions are. You can start with higher-order functions.
Thanks goes to these wonderful people (emoji key):
🐛 🎨 🖋
🖋 🐛 🎨