Douglas Crockford has a talk where he presents a series of functions to be implemented, twisting the minds of students until they grasp the power of closures.
I wrote tests for all of the functions to help learners work through the challenges.
Clone the repo, then open SpecRunner.html in your browser to see the results of the tests.
For each function, write a definition in src/functions.js. Refresh the browser window to re-run the tests.
Once you have all the tests passing, congatulations! You now understand closures in javascript!