looks like closure is a hot topic
this is best doc I found.
: A closure is a special kind of object that combines two things: a function, and the environment in which that function was created. The environment consists of any local variables that were in-scope at the time that the closure was created.
if someone has better one, comment it please.