Like the old [Albert Einstein][1] [said][2]: 
> If you can't explain it to a six-year-old, you really don't understand it yourself.  

Well, I tried to explain JavaScript closures to a 27-year-old friend and completely failed.

How would you explain it to someone with a knowledge of the concepts which make up closures (for example, functions, variables and the like), but does not understand closures themselves?

I have seen [the Scheme example][3] given on Stack Overflow, and it did not help.

  [1]: http://en.wikipedia.org/wiki/Albert_Einstein
  [2]: http://www.searchquotes.com/quotation/If_you_can%27t_explain_it_to_a_six_year_old,_you_don%27t_understand_it_yourself./333069/
  [3]: http://en.wikipedia.org/wiki/Scheme_%28programming_language%29