First class objects posses same properties as other variable out there in different languages. It can be passed as argument and can be retrieved. It is dynamically create, destroyed.
A function is an instance of the Object type
A function can have properties and has a link back to its constructor method
You can store the function in a variable
You can pass the function as a parameter to another function
You can return the function from a function