First Class Objects

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