**In  JavaScript ,  functions are first-class objects, which means they can be:**

- stored in a variable.
- passed as an argument to a function.
- returned from a function.
- Be stored in some data structure; and,
- Hold their own properties and methods.



#### An Introduction to First-Class Functions:-

https://medium.com/launch-school/javascript-weekly-an-introduction-to-first-class-functions-9d069e6fb137

NOTE:  JavaScript, for all of its power and expressiveness, is a language that **refuses categorization**. Some prefer to use it in the object-oriented style and others in the functional style. And the mere fact that it can be used in either tells us something about JavaScript’s dynamism.

##### Uses of a First-Class Function:-

- Higher-Order Functions
- Partial Function Application
- Asynchronous Functions