from http://stackoverflow.com/questions/111102/how-do-javascript-closures-work/6472397#6472397
I'm a big fan of analogy and metaphor when explaining difficult concepts, so let me try my hand with a story.
Once upon a time:
There was a princess...
function princess() {