What are closures? From Wikipedia
A closure is a data structure storing a function together with an environment, a mapping associating each free variable of the function (variables that are used locally, but defined in an enclosing scope) with the value or storage location the name was bound to at the time the closure was created.
What does that mean?
In simple words, it means that a function can contain (or return) another function which is called closure.